HDU 2098 分拆素数和

来源:互联网 发布:外汇分析行情软件 编辑:程序博客网 时间:2024/06/03 21:59
把一个偶数拆成两个不同素数的和,有几种拆法呢?
Input
输入包含一些正的偶数,其值不会超过10000,个数不会超过500,若遇0,则结束。
Output
对应每个偶数,输出其拆成不同素数的个数,每个结果占一行。
Sample Input
30260
Sample Output
3

2

简单题,日常一水

#include<cstdio>const int N=1e4+10;int f[N],p[N],t,n;void init(){f[1]=1; t=0;for (int i=2;i<N;i++){if (!f[i]) p[t++]=i;for (int j=0;j<t&&p[j]*i<N;j++){f[p[j]*i]=1;if (i%p[j]==0) break;}}}int main(){init();while (~scanf("%d",&n),n){int cnt=0;for (int i=0;i<t;i++){if (p[i]+p[i]>=n) break;if (!f[n-p[i]]) cnt++;}printf("%d\n",cnt);}return 0;}


0 0
原创粉丝点击