hdu 2098 分拆素数和

来源:互联网 发布:腾讯游戏哪些有mac版 编辑:程序博客网 时间:2024/06/05 15:40

点击打开题目链接

分拆素数和

Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 20499    Accepted Submission(s): 8956


Problem Description
把一个偶数拆成两个不同素数的和,有几种拆法呢?
 

Input
输入包含一些正的偶数,其值不会超过10000,个数不会超过500,若遇0,则结束。
 

Output
对应每个偶数,输出其拆成不同素数的个数,每个结果占一行。
 

Sample Input
30260
 

Sample Output
32


代码:

#include<iostream>#include<cstdio>#include<cstring>#include<cmath>const int N=10010;using namespace std;bool is[N]; int main() {    int m,n,t,i,j,k;    memset(is,1,sizeof(is));    is[0]=is[1]=0;    for(i=4;i<=N;i+=2)      is[i]=0;    for(i=3;i<=N;i+=2)      if(is[i])        {            for(j=i+i;j<=N;j+=i)              is[j]=0;        }    while(~scanf("%d",&n)&&n)    {        t=0;        for(i=3;i<n/2+1;i+=2)         if(is[i]&&is[n-i]&&n-i!=i)          {             t++;            }       printf("%d\n",t);    }     return 0; }



0 0
原创粉丝点击