驗證四方定理是數論中的重要定理,它可以敘述為:所有自然數最多只要4個數的平方和就可以表示,編寫一個程式驗證四方定理。
基本介紹
- 中文名:驗證四方定理
- 簡介:數論中的重要定理
- 學科:數學
- 驗證方法:窮舉法
表現形式
#include <stdio.h>
#include <math.h>
int mode_1(int n)
{
if((int)sqrt(n) * (int)sqrt(n) == n){
printf("%d * %d = %d \n",(int)sqrt(n),(int)sqrt(n),n);
return 1;
}
else{
return 0;
}
}
int mode_2(int n)
{
int x,y;
for(x=1; x<sqrt(n); x++)
for(y=x; y<sqrt(n); y++){
if(x*x + y*y == n){
printf("%d^2 + %d^2 = %d\n",x,y,n);
return 1;
}
}
return 0;
}
int mode_3(int n)
{
int x,y,z;
for(x=1; x<sqrt(n); x++)
for(y=x; y<sqrt(n); y++)
for(z=y; z<sqrt(n); z++){
if(x*x + y*y + z*z == n){
printf("%d^2 + %d^2 + %d^2 = %d\n",x,y,z,n);
return 1;
}
}
return 0;
}
int mode_4(int n)
{
int x,y,z,t;
for(x=1; x<sqrt(n); x++)
for(y=x; y<sqrt(n); y++)
for(z=y; z<sqrt(n); z++)
for(t=z; t<sqrt(n); t++)
if(x*x + y*y + z*z + t*t == n){
printf("%d^2 + %d^2 + %d^2 + %d^2 = %d\n",x,y,z,t,n);
return 1;
}
return 0;
}
void proveFourSquares(int n)
{
if(mode_1(n))
printf("it has verified four squares\n");
else if(mode_2(n))
printf("it has verified four squares\n");
else if(mode_3(n))
printf("it has verified four squares\n");
else if(mode_4(n))
printf("it has verified four squares\n");
}
int main(int argc, char *argv[])
{
int n;
printf("please input a natural number\n");
scanf("%d",&n);
printf("--------------------------\n");
proveFourSquares(n);
return 0;
}