HDU 2098 分拆素数和
2013-05-09 14:51
225 查看
分拆素数和
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 15712 Accepted Submission(s): 6789
[align=left]Problem Description[/align]
把一个偶数拆成两个不同素数的和,有几种拆法呢?
[align=left]Input[/align]
输入包含一些正的偶数,其值不会超过10000,个数不会超过500,若遇0,则结束。
[align=left]Output[/align]
对应每个偶数,输出其拆成不同素数的个数,每个结果占一行。
[align=left]Sample Input[/align]
30
26
0
[align=left]Sample Output[/align]
3
2
类似于NEFU 2,不过要注意这里是要拆成两个不同的素数
[C++]
#include<iostream> #include<cstring> using namespace std; bool isPrime[10001]; void initial() { memset(isPrime,true,sizeof(isPrime)); isPrime[0]=isPrime[1]=false; for(int i=4;i<=10000;i+=2) isPrime[i]=false; for(int i=3;i<=100;i+=2) if(isPrime[i]) for(int j=i*2;j<=10000;j+=i) isPrime[j]=false; } int main() { int n; initial(); while((cin>>n)&&n) { int ans=0; for(int i=2,x=n/2+n%2;i<x;i++) if(isPrime[i]&&isPrime[n-i]) ans++; cout<<ans<<endl; } return 0; }
相关文章推荐
- HDU 2098 分拆素数和(素数)
- hdu 2098 分拆素数和
- 【hdu 2098】 分拆素数和
- 分拆素数和 【hdu-2098】【素数】
- Hdu 2098 分拆素数和
- HDU 2098 分拆素数和
- HDU-分拆素数和-2098
- 【HDU 2098】 分拆素数和 (~水)
- HDU 2098 分拆素数和
- HDU 2098 分拆素数和
- HDU 2098 分拆素数和
- 分拆素数和 HDU - 2098
- hdu 2098 分拆素数和
- HDU 2098 分拆素数和(素数)
- 继续刷水题= =||分拆素数和 HDU 2098
- hdu 2098 分拆素数和 水题
- hdu 2098 分拆素数和(素数筛法)
- HDU 2098 分拆素数和 遍历+素数打表
- HDU 2098 分拆素数和
- HDU 2098 分拆素数和(筛法求素数+暴力枚举)