/*
splitsen.c -- C-uitwerking van de NKP'97-opgave "Splitsen"
(c) 10/08/'97 Meinte Boersma
*/
#include <stdio.h>
#define sqr(x) ((x)*(x))
typedef int som[6];
/* gebruikt alleen entries 1..5 */
int t; /* globaal houden om in "splits" af drukken */
void splits (int x, int k, som a)
{
int i;
if (k==0) {
if (x==0) {
/* correcte splitsing */
printf("4*%d=", t);
for (i=4; i>=2; i--) {
printf("%d+", sqr(a[i]));
}
printf("%d\n", sqr(a[1]));
}
} else {
a[k] = a[k+1];
while (sqr(a[k])<=x) {
splits(x-sqr(a[k]),k-1,a);
a[k] += 2;
}
}
}
int main (void)
{
int n, run;
som a; /* bewaart schrijfwijze */
scanf("%d", &n);
for (run=1; run<=n; run++) {
scanf("%d", &t);
a[5] = 1;
splits(4*t,4,a);
if (run<n) {
printf("\n");
}
}
return(0);
}
Generated by Java2Html