验证int类型范围中哥德巴赫猜想的正确性
- 什么是哥德巴赫猜想?
百度百科告诉你答案:
链接:百度百科:哥德巴赫猜想。 - 素数的验证:
验证哥德巴赫猜想其中重要的一环就是素数的验证,我们采用以下方法:
int Prime(int num) {
int i;
if(num ==2|| num==3 )
return 1;
if(num %6!= 1&&num %6!= 5)
return 0 ;
int tmp =(int) sqrt( num);
for(i= 5;i <=tmp; i+=6 )
if(num %i== 0||num %(i+ 2)==0 )
return 0 ;
return 1 ;
}
这里只写出函数,不给出测试了(因为快上课了)
- 完整代码如下:
#include<stdio.h>
int Prime(int num) {
int i;
if(num ==2|| num==3 )
return 1;
if(num %6!= 1&&num %6!= 5)
return 0 ;
int tmp =(int) sqrt( num);
for(i= 5;i <=tmp; i+=6 )
if(num %i== 0||num %(i+ 2)==0 )
return 0 ;
return 1 ;
}
int main()
{
int num=2;
int max;
int flag=1;
while(scanf("%d",&max))
{
int i,j;
num=2;
int result=0;
int conter=0;
result=((max-4)/2)+1;
for (num;num<=max;num+=2)
{
flag=1;
for (i=2;flag&&(i<=num/2);i++)
{
while(Prime(i)&&Prime(num-i))
{
printf("%d=%d+%d",num,i,num-i);
flag=0;
printf("\n");
conter ++;
break;
}
}
}
printf("4到%d中间的偶数个数为:%d\n",max,result);
printf("哥德巴赫猜想在4到%d成立\n",max);
}
return 0;
}
- 测试结果: