C - 分拆素数和
Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u
Description
把一个偶数拆成两个不同素数的和,有几种拆法呢?
Input
输入包含一些正的偶数,其值不会超过10000,个数不会超过500,若遇0,则结束。
Output
对应每个偶数,输出其拆成不同素数的个数,每个结果占一行。
Sample Input
30260
Sample Output
32
也是大水题,数据也不大,可以直接暴力过,讲所有的因数枚举一遍,然后判断是都为素数即可
#include <stdio.h>
int sushu(int a)
{int i,leap=0;for(i=2;i<=a/2;i++)if(a%i==0){leap=1;break;}if(leap==0)return 1;elsereturn 0;
}
int main()
{int n,m,i;while(scanf("%d",&n)!=EOF,n){int num=0;for(i=2;i<n/2;i++){m=n-i;if(sushu(i)&&sushu(m))num++;}printf("%d\n",num);}
}