所有自然数最多只要4个数的平方和就可以表示
2、源码
#include <stdio.h>
#include <math.h>
3:
/*判断自然数N是否可以表示成为N=a2的形式*/
5: {
int)sqrt(N)==N)
7: {
int)sqrt(N),N);
return 1;
10: }
return 0;
12: }
13:
/*判断自然数N是否可以表示成N=a2+b2的形式*/
15: {
int x,y;
for(x=1;x<sqrt(N);x++)
for(y=x;y<sqrt(N);y++)
19: {
if(x*x+y*y == N)
21: {
,x,y,N);
return 1;
24: }
25:
26: }
return 0;
28: }
29:
/*判断自然数N是否可以表示成N=a2+b2+c2的形式*/
31: {
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++)
36: {
if(x*x+y*y+z*z == N)
38: {
,x,y,z,N);
return 1;
41: }
42: }
return 0;
44: }
45:
/*判断自然数N是否可以表示成N=a2+b2+c2+d2的形式*/
47: {
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++)
53: {
if(x*x+y*y+z*z+t*t == N)
55: {
,x,y,z,t,N);
return 1;
58: }
59: }
return 0;
61: }
62:
int N)
64: {
if(mode_1(N))
);
if(mode_2(N))
);
if(mode_3(N))
);
if(mode_4(N))
);
73: }
74:
int main()
76: {
int N;
);
,&N);
);
81: proveFourSquares(N);
return 0;
83: }