您的位置:首页 > 编程语言 > Go语言

POJ 2909 Goldbach's Conjecture(素数表)

2010-06-13 20:39 441 查看
//这次是验证哥德巴赫猜想的解有多少个,同样核心是打素数表
//思路和POJ 2262差不多,筛法打素表
#include<iostream>
using namespace std;
const int MAXP = 400000;
bool isPrime[MAXP];
int prime[MAXP];
void primeList()
{
memset(isPrime,true,sizeof(isPrime));
for(int i = 2;i <= MAXP;++i)
{
if(isPrime[i])	prime[++prime[0]] = i;
for(int j = 1,k;(k = i * prime[j]) <= MAXP && j <= MAXP;++j)
{
isPrime[k] = false;
if(i % prime[j] == 0)	break;
}
}
}
int main()
{
primeList();
int n,ans;
while(scanf("%d",&n) && n != 0)
{
ans = 0;
for(int i = 1;prime[i] <= n/2;++i)
{
if(isPrime[n - prime[i]])
++ans;
}
printf("%d/n",ans);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: