2025年1月31日 星期五 甲辰(龙)年 冬月廿九 设为首页 加入收藏
rss
您当前的位置:首页 > 计算机 > 编程开发 > C语言

哥德巴赫猜想问题

时间:01-03来源:作者:点击数:77

德国数学家哥德巴赫(Goldbach)在1725年写给欧拉(Euler)的信中提出了以下猜想:

任何大于2的偶数,均可表示为两个素数之和(俗称为1+1)。

近三个世纪了,这一猜想既未被证明,也未被推翻(即未找到反例)。

请编写一个程序,在有限范围内(例如4~2000)验证哥德巴赫猜想成立。请注意:这只是有限的验证,不能作为对哥德巴赫猜想的证明。

分析:要将整数分解成两部分,然后判断分解出的两个整数是否都为素数。如是,则输出;否则,重新分解、判断。

程序如下:

  • #include "stdio.h"
  • #include "math.h"
  • main( )
  • { int fflag(int i);
  • int i,n;
  • for(i=4; i<=2000; i+=2)
  • {for(n=2;n if(fflag(n)) /*分别判断两个整数是否均为素数*/
  • if(fflag(i-n))
  • {printf("%d=%d+%d\n",i,n,i-n); /*如均为素数则输出*/
  • break;
  • }
  • if(n==i)printf("error %d\n",i);
  • }
  • }
  • int fflag(int i) /*判断整数是否为素数*/
  • { int j;
  • if(i<=1) return(0);
  • if(i==1) return(1);
  • if(!(i%2)) return(0); /*if no, return 0*/
  • for(j=3;j<=(int)(sqrt((double)i)+1);j+=2)
  • if(!(i%j)) return(0);
  • return(1); /*if yes, return 1*/
  • }

请思考:如果在范围4~1 000 000内验证哥德巴赫猜想,该程序如何修改?

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门