感谢之前帮过我的童鞋们,我又有问题了。。。
验证歌德巴赫猜想。歌德巴赫猜想的大致内容为:任何大于6的偶数,都可以写成两个素数的和。大于六的部分 用if条件句
但后半部分 分为两个素数。。
这个该如何输出。我不知怎么办。。
能不能给点小思路?
谢谢谢谢。。
2011-10-31 22:03
2011-10-31 22:49
程序代码:#include<stdio.h>
#include<math.h>
int main()
{
int n,i,j,flag,s;
int IsPrime(int n);
for(n=8;n<=10000;n+=2)
{
flag=0;
s=n/2;
for(i=3;i<s;i++)
{
j=n-i;
if(IsPrime(i)&&IsPrime(j))
{
flag=1;///////
}
}
if(!flag)
{
printf("%d=%d+%d\n",n,i,j);
break;
}
}
if(flag)
{
printf("歌德巴赫猜想在8-10000成立。\n");
}
else
{
printf("歌德巴赫猜想不成立。\n");
}
return 0;
}
int IsPrime(int n)
{
int i,s;
s=(int)sqrt(n);
if(2==n)
{
return 1;
}
for(i=2;i<s;i++)
{
if(n%i==0)
{
return 0;
}
}
return 1;
}代码参考:
2011-10-31 23:02