永发信息网

关于四方定理的证明

答案:1  悬赏:10  手机版
解决时间 2021-01-17 15:19
关于四方定理的证明
最佳答案
百科资料
四方定理是数论中的重要定理,它可以叙述为:所有自然数最多只要4个数的平方和就可以表示,编写一个程序验证四方定理。
  要验证四方定理,因此我们可以使用穷举法,对一个数,先用1一个数的平方和,2个数平方和,3个平方数的平方和,4个数的平方和进行验证。如果成功返回1,失败返回0;当穷举完所有情况后,就可以验证四方定理了,代码如下:
  #include
  #include
  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  for(y=x; 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  for(y=x; y  for(z=y; 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  for(y=x; y  for(z=y; z  for(t=z; 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;
  }
  执行结果如下:
  peng@ubuntu:~/src/test/c/suanfa/miaoqu$ gcc 6.5.c -lm
  peng@ubuntu:~/src/test/c/suanfa/miaoqu$ ./a.out
  please input a natural number
  120
  --------------------------
  2^2 + 4^2 + 10^2 = 120
  it has verified four squares
  peng@ubuntu:~/src/test/c/suanfa/miaoqu$ ./a.out
  please input a natural number
  10
  --------------------------
  1^2 + 3^2 = 10
  it has verified four squares
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
求韩国K联赛最新排名。
花生油炒面粉,怎么做
17款马自达3昂克赛拉是国6排放标准吗
怎样查询太阳星座
磕大头,需要回向吗
烤香蕉的营养价值:
5g是独立建网,还是非独立建网
卡特312显示屏上有些什么报警
三星sm-t311怎么退出twrp
已知关于x的方程x2-3x+m=0的一个根是另一个根
广州增城和白云番禺,哪个区经济发达?交通发
做面包 全麦粉和面粉的比例
车床加工不锈钢外圆500mm的工件应该给多少转
请问张家界7月27到31号天气预报
怎么将本地仓库上传到github
推荐资讯
55×22怎么脱式计算
WIN7系统CPU和内存使用率高
这电脑好吗
华清池大浴场在哪里啊,我有事要去这个地方
步步高vivo什么款的手机比较好,求推荐
什么得什么?比如飞得高,叫得欢
一步,再走一步阅读答案
1L PH=13的NaOH溶液中,Na离子数目为0.1NA为
中国男子网球谁最厉害
甲骨文,金文,小篆,隶书,楷书,简化字是在什么
要外出四天,家里的黄喉鹀(黄梅子鸟)需要准
手摇手电筒工作原理
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?