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;
else
return 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);
}
}