成语大全网 - 成语解释 - 用c语言验证哥德巴赫猜想,能用到调用函数,简单些的。结果是那种输入一个偶数,输出两个素数。

用c语言验证哥德巴赫猜想,能用到调用函数,简单些的。结果是那种输入一个偶数,输出两个素数。

德国数学家哥德巴赫(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*/

}