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

POJ 2909 && HDU 1397 Goldbach's Conjecture(数论)

2015-08-29 08:29 615 查看
Description

给出一个偶数,要求在这个偶数的范围内,有几对素数和是等于这个偶数的,注意素数对的不重复性

Input

多组输入,每组用例一个偶数n表示查询数,以n=0结束输入

Output

对于每组用例,输出组成该偶数的素数对对数

Sample Input

6

10

12

0

Sample Output

1

2

1

Solution

简单数论题,打出素数表后暴力枚举即可

Code

#include<cstdio>
#include<iostream>
#include<cstring>
using namespace std;
#define maxn 33333
bool prime[maxn];
void get_prime()
{
memset(prime,true,sizeof(prime));
prime[0]=prime[1]=false;
for(int i=2;i<maxn;i++)
if(prime[i])
for(int j=2*i;j<maxn;j+=i)
prime[j]=false;
}
int main()
{
get_prime();
int n;
while(scanf("%d",&n),n)
{
int ans=0;
for(int i=2;2*i<=n;i++)
if(prime[i]&&prime[n-i])
ans++;
printf("%d\n",ans);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: