您的位置:首页 > 其它

哥德巴赫猜想

2014-04-06 16:58 127 查看
哥德巴赫猜想(Goldbach Conjecture)大致可以分为两个猜想(前者称“强”或“二重哥德巴赫猜想”后者称“弱”或“三重哥德巴赫猜想”):1、每个不小于6的偶数都可以表示为两个奇素数之和;2、每个不小于9的奇数都可以表示为三个奇质数之和。
  

每个不小于6的偶数都可以表示为两个素数之和

编写一个函数,输出6-100000内所有偶数可以表示为哪两个素数之和,如果一个偶数有多种表示方式,输出任意一种即可。


#include<stdio.h>
#include<math.h>
const int Max=100010;
int a[Max];
void isprime()
{
for(int i=1;i<Max;i++)
a[i]=i;
a[1]=0;
for(int i=2;i<=sqrt(Max+0.5);i++)
{
if(a[i])
{
for(int j=2;i*j<Max;j++)
{
a[i*j]=0;
}
}
}
}
int main()
{
isprime();
int i,n;
while(scanf("%d",&n)!=EOF)
{
i=3;
while(!a[i]||!a[n-i])
{
i+=2;
}
printf("%d %d\n",a[i],a[n-i]);
}
return 0;
}


View Code
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: