您的位置:首页 > 其它

哥德巴赫猜想 POJ2909

2015-12-03 15:18 197 查看
题意:求出有多少对素数的和等于n(n>=4并且n为偶数)

解析:先用素数筛选法求筛选出素数,然后直接扫描一遍就可以了。简单数论

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
using namespace std;

const int maxn = 100000;
bool prime[maxn+10];

void getprime()
{
memset(prime,1,sizeof(prime));
for(int i = 2 ; i*i <= maxn ; i++)
{
if(prime[i])
{
for(int j = i*i ; j <= maxn ; j+=i)
{
prime[j] = 0 ;
}
}
}
}

int main()
{
int n , ans ;
getprime();
while(scanf("%d",&n),n > 0)
{
ans = 0 ;
for(int i = 2 ; i <= n/2 ; i++)
{
if(prime[i]&&prime[n-i])
{
ans++;
}
}
printf("%d\n",ans);
}
return 0;
}

/*
Auther:LIUYAN
2015.12.03
*/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  acm poj 数论