c语言验证哥德巴赫猜想任何一个大于等于6,验证哥德巴赫猜想任何一个大于6的偶数均可以表示为两个素数之和要求从键盘输入一个大于6的偶数...

满意答案

dcebd7a0de6265b6ccae5ead692f1eab.png

lu2458

2013.03.17

dcebd7a0de6265b6ccae5ead692f1eab.png

采纳率:43%    等级:12

已帮助:7659人

验证哥德巴赫猜想

验证哥德巴赫猜想:任一充分大的偶数,可以用两个素数之和表示,例如:

4 = 2 + 2

6 = 3 + 3

..

9 8 = 1 9 + 7 9

分析:我们先不考虑怎样判断一个数是否为素数,而从整体上对这个问题进行考虑,可以这样做:读入一个偶数n,将它分成p和q,使n = p + q。怎样分呢?可以令p从2开始,每次加1,而令q = n - p,如果p、q均为素数,则正为所求,否则令p = p + q再试。

参考程序:

#include

#include

main( )

{

long int j,n,p,q,flagp,flagq;

printf("please input n :\n");

scanf("%ld",&n );

if (((n%2)!=0)||(n<=4))

printf("input data error!\n");

else

{

p = 1 ;

do {

p = p + 1 ;

q = n - p ;

flagp = 1 ;

for(j=2;j<=(int)(sqrt(p));j++)    /*判断p是否为素数*/

{

if ((p%j)==0)

{

flagp = 0 ;

break;       /*不是素数,退出循环*/

}

}

flagq=1 ;

for(j=2;j<=(int)(sqrt(q));j++)   /*判断q是否为素数*/

{

if ((q%j)==0)

{

flagq = 0 ;

break ;  /*不是素数,退出循环*/

}

}

} while(flagp*flagq==0);

printf("%d = %d + %d \n",n,p,q) ;

}

115分享举报

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值