四方定理
数论中著名的“四方定理”讲的是:所有自然数至多只要用四个数的平方和就可以表示。
请编程证此定理。*问题分析与算法设计本题是一个定理,我们不去证明它而是编程序验证。
对四个变量采用试探的方法进行计算,满足要求时输出计算结果。
#include<stdio.h> int main() { int number,i,j,k,l; while(1) { printf("Please enter a number = "); scanf("%d",&number); //输入整数 for(i=0;i<=number/2+1;i++) //试探法。试探i,j,k,k的不同值 { for(j=0;j<=i;j++) { for(k=0;k<=j;k++) { for(l=0;l<=k;l++) { if(number==i*i+j*j+k*k+l*l) //若满足定理要求则输出结果 { if (j!=0&&k!=0&&l==0) printf("%d=%d*%d+%d*%d+%d*%d\n",number,i,i,j,j,k,k); //整数由3个平方数组成 else if (j!=0&&k==0&&l==0)printf("%d=%d*%d+%d*%d\n",number,i,i,j,j); //整数由2个平方数组成 else if (j==0&&k==0&&l==0)printf("%d=%d*%d\n",number,i,i); //整数由1个平方数组成(整数本身是一个平方数) else printf("%d=%d*%d+%d*%d+%d*%d+%d*%d\n",number,i,i,j,j,k,k,l,l); //整数由4个平方数组成 } } } } } } return 0; }