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;
}