用C语言解答这道题

来源:百度知道 编辑:UC知道 时间:2024/06/25 08:59:34
59=5^2+5^2+3^2=7^2+3^2+1^2,即59可以分别等于两组不同的自然数(每组各3个数)的二次幂之和,请找出10个最小的具有这种特性的数。

#include "stdio.h"
#define MAX 1000

void main()
{
int a = 0,i,j,k,flag1,flag2 =0;
FILE *fp;
fp=fopen("D:\\12.txt","w");
loot:for(;a <MAX;a++)
{flag1 = 0;
for(i = 1;i < a;i++)
for(j = i;j < a;j++)
for(k = j;k < a;k++)
if(i*i+j*j+k*k == a)
flag1++;
if(flag2 == 10)
goto loop;
if(flag1 == 2)
{
fprintf(fp,"%d:%d ",flag2+1,a);
flag2++;
a++;
goto loot;
}
}
loop:printf("end");
fclose(fp);
getch();
}

TC环境
答案
1:27 2:33 3:38 4:41 5:51 6:57 7:59 8:62 9:69 10:74