题意:求出有多少对素数的和等于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
*/