正文

31.歌德巴赫猜想2005-09-10 15:12:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/xiangyu/1683.html

分享到:

31.歌德巴赫猜想 验证:2000以内的正偶数都能够分解为两个素数之和(即验证歌德巴赫猜想对2000以内的正偶数成立)。 *问题分析与算法设计 为了验证歌德巴赫猜想对2000以内的正偶数都是成立的,要将整数分解为两部分,然后判断出分解出的两个整数是否均为素数。若是,则满足题意;否则重新进行分解和判断。 程序中对判断是否为素数的算法进行了改进,对整数判断“用从2开始到该整数的一半”改为“2开始到该整数的平方根”。原因何在请自行分析。 *程序与程序注释 #include<stdio.h> #include<math.h> int fflag(int n); void main() { int i,n; for(i=4;i<=2000;i+=2) { for(n=2;n<i;n++) /*将偶数i分解为两个整数*/ if(fflag(n)) /*分别判断两个整数是否均为素数*/ if(fflag(i-n)) { printf("%14d=%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==2)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*/ }

阅读(3010) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册