|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include <stdio.h>
#include <math.h>
int main()
{
int count,i,j,r,n,sum;
char a,y;
printf("请输入一个整数:");
scanf("%d",&count);
int num[count][3];
for (n=3;n<=count;n++)
{
num[n][0]=0;
sum=pow(n,3);
for(i=1;i<sum;i+=2)
{
for(j=i;j<sum;j+=2)
{
r+=j;
if(r==sum)
{
num[n][0]=sum;
num[n][1]=i;
num[n][2]=j;
goto FINDIT;
}
if(r>n)
{
r=0;break;
}
}
}
FINDIT:
r=0;
}
for(n=3;n<=count;n++)
{
if(num[n][0]==0)
{
printf("验证失败:整数%d不符合尼克彻斯定理\n",n);
}
else
{
printf("经验证,3~%d之间所有的整数均符合尼克
彻斯定理!\n\n",count);
printf("能否打印所有式子(y/n):");
getchar();scanf("%c",&a);break;
}
}
if(a==y)
{
for(n=3;n<=count;n++)
{
if(num[n][2]-num[n][1]>4)
{
printf("%d^3 ==%2d == %d + %d + ... + %d\n",n,pow(n,3),num[n][1],num[n][1]+2,num[n][2]);
}
else
{
printf("%d^3 ==%2d ==%2d +%2d +%2d\n",n,pow(n,3),num[n][1],num[n][1]+2,num[n][2]);
}
}
}
return 0;
}
|
|