LightOJ

来源:互联网 发布:我比想象中爱你 js 编辑:程序博客网 时间:2024/06/11 00:15
#include<cstdio>using namespace std;/*给一个偶数n,求有多少对素数为n[4,e^7]a<=b n=a+b a和b为素数*/const int maxn=1e6+5;const int maxm=1e7+5;int p;int prime[maxn];bool is_prime[maxm];//素数筛void sieve(int n){    for(int i=0;i<n;i++)    {        is_prime[i]=1;    }    is_prime[0]=is_prime[1]=0;    p=0;    for(int i=0;i<n;i++)    {        if(is_prime[i])        {            prime[p++]=i;            for(int j=2*i;j<n;j+=i)            {                is_prime[j]=0;            }        }    }}int main(){    int T,kase=1,ans;    int n;    sieve(maxm);    scanf("%d",&T);    while(T--)    {        scanf("%d",&n);        ans=0;        //枚举素数加数,需要<=n/2        for(int i=0;prime[i]<=n/2;i++)        {            if(is_prime[n-prime[i]])//判断另一个加数            {                ans++;            }        }        printf("Case %d: %d\n",kase++,ans);    }    return 0;}