如何用c++编程在(2到1000000)验证哥德巴赫猜想

[复制链接]
查看11 | 回复2 | 2009-10-13 10:33:03 | 显示全部楼层 |阅读模式
#include#includeint fflag(int n);int 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); } return 0;}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*/}
回复

使用道具 举报

千问 | 2009-10-13 10:33:03 | 显示全部楼层
造素数表,2-1000的,然后依次从2开始搜索n,直到1000000,注意当素数大于n的平方的时候就不要搜索了,三重循环搞定,虽说效率不咋地,不过写起来简单。
回复

使用道具 举报

千问 | 2009-10-13 10:33:03 | 显示全部楼层
自己写,不难得
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行