哥德巴赫猜想的计算机验证,哥德巴赫猜想的计算机程序验证

/*本程序用来验证哥德巴赫猜想--假如你的计算机足够强大的话。。。。

哥德巴赫猜想的一种命题加强是一个大于5的偶数可以表示成两个素数的和,本程序就是基于这一增强型命题来编写的,具体做法是输入一个上限值a1,

然后由计算机产生从6至a1之间的偶数表示成两个素数之和的效果,如果表示不成功即系统会发出警告,有兴趣的同学可以试一试。

练洋-------2012/12/25-----*/

#include

#include

#include

#include

void main()

{

int a1,count=0,i,j,state,*p,*p1,b1,b2,k;

printf("please enter a1:");//输入一个上限值

scanf("%d",&a1);

for(i=2;i<=a1;i++)//找出上限值内的所有素数

{

state=0;

for(j=2;j<=(int)sqrt(i);j++)

if(i%j==0){state=1;break;}

if(state==0)count++;

}

p=(int*)calloc(count,sizeof(int));

p1=p;

for(i=2;i<=a1;i++)

{

state=0;

for(j=2;j<=(int)sqrt(i);j++)

if(i%j==0){state=1;break;}

if(state==0)*(p++)=i;

}//pass!!!!

//for(i=0;i

for(i=6;i<=a1;i+=2)//进行组合

{

count=0;

for(j=0;;j++){if(*(p1+j)>(i/2)&&count==0){b1=j-1;count=1;}if(*(p1+j)>i){b2=j-1;break;}}

count=0;

//printf("b1=%d,b2=%d ",b1,b2);

for(j=0;j<=b1;j++)

for(k=b1;k<=b2;k++)

{//printf("%d?%d+%d ",i,*(p1+j),*(p1+k));getchar();

if(*(p1+j)+*(p1+k)==i){printf("number %d\t:.....%d=%d+%d\n",i,i,*(p1+j),*(p1

+k));count=1;}

}

if(count==0)printf("error!!! not exist...\a\a\a\a\a\a\a\a\n\n");//如不满足,即发出警告。。当然是没找到这种特例的

}

free(p1);

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值