分拆素数和
Time Limit : 1000/1000ms (Java/Other) Memory Limit : 32768/32768K (Java/Other)
Total Submission(s) : 4 Accepted Submission(s) : 2
Font: Times New Roman | Verdana | Georgia
Font Size: ← →
Problem Description
把一个偶数拆成两个不同素数的和,有几种拆法呢?
Input
输入包含一些正的偶数,其值不会超过10000,个数不会超过500,若遇0,则结束。
Output
对应每个偶数,输出其拆成不同素数的个数,每个结果占一行。
Sample Input
30 26 0
Sample Output
3 2
#include<iostream> #include<cmath> using namespace std; int shusu(int c)//判断素数 { int k; if(c==1) return 0; for(k=2;k*k<=c;k++) { if(c%k==0) return 0; } return 1; } int check(int b)//凑数 { int sum=0; int i,j; for(i=2;i<b/2;i++) { j=b-i; if(shusu(i)&&shusu(j)) { sum++; } } return sum; } int main() { int a; while(cin>>a) { if(a==0) break; cout<<check(a)<<endl; } return 0; }