数学趣题——验证四方定理

1、题目

所有自然数最多只要4个数的平方和就可以表示

2、源码

   1: #include <stdio.h>
   2: #include <math.h>
   3:  
   4: int mode_1(int N)            /*判断自然数N是否可以表示成为N=a2的形式*/
   5: {
   6:     if((int)sqrt(N)*(int)sqrt(N)==N)
   7:     {
   8:       printf("%d*%d=%d\n",(int)sqrt(N),(int)sqrt(N),N);
   9:       return 1;
  10:     }
  11:     else return 0;
  12: }
  13:  
  14: int mode_2(int N)            /*判断自然数N是否可以表示成N=a2+b2的形式*/
  15: {
  16:     int x,y;
  17:     for(x=1;x<sqrt(N);x++)
  18:         for(y=x;y<sqrt(N);y++)
  19:         {
  20:             if(x*x+y*y == N)
  21:             {
  22:                 printf("%d^2+%d^2=%d\n",x,y,N);
  23:                 return 1;
  24:             }
  25:  
  26:         }
  27:     return 0;
  28: }
  29:  
  30: int mode_3(int N)            /*判断自然数N是否可以表示成N=a2+b2+c2的形式*/
  31: {
  32:     int x,y,z;
  33:     for(x=1;x<sqrt(N);x++)
  34:         for(y=x;y<sqrt(N);y++)
  35:             for(z=y;z<sqrt(N);z++)
  36:             {
  37:                 if(x*x+y*y+z*z == N)
  38:                  {
  39:                     printf("%d^2+%d^2+%d^2=%d\n",x,y,z,N);
  40:                      return 1;
  41:                  }
  42:             }
  43:     return 0;
  44: }
  45:  
  46: int mode_4(int N)            /*判断自然数N是否可以表示成N=a2+b2+c2+d2的形式*/
  47: {
  48:     int x,y,z,t;
  49:     for(x=1;x<sqrt(N);x++)
  50:         for(y=x;y<sqrt(N);y++)
  51:             for(z=y;z<sqrt(N);z++)
  52:                 for(t=z;t<sqrt(N);t++)
  53:                 {
  54:                      if(x*x+y*y+z*z+t*t == N)
  55:                      {
  56:                         printf("%d^2+%d^2+%d^2+%d^2=%d\n",x,y,z,t,N);
  57:                         return 1;
  58:                         }
  59:                 }
  60:     return 0;
  61: }
  62:  
  63: void proveFourSquares(int N)
  64: {
  65:     if(mode_1(N))
  66:     printf("It has verified Four Squares");
  67:     else if(mode_2(N))
  68:     printf("It has verified Four Squares");
  69:     else if(mode_3(N))
  70:     printf("It has verified Four Squares");
  71:     else if(mode_4(N))
  72:     printf("It has verified Four Squares");
  73: }
  74:  
  75: int main()
  76: {
  77:     int N;
  78:     printf("Please input a natural number\n");
  79:     scanf("%d",&N);
  80:     printf("-------- Step of Verification---------\n");
  81:     proveFourSquares(N);
  82:     return 0;
  83: }

转载于:https://www.cnblogs.com/steven_oyj/archive/2010/05/27/1744943.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值