当前位置: 代码迷 >> 综合 >> CDUESTC 2016 假期赛1 C题
  详细解决方案

CDUESTC 2016 假期赛1 C题

热度:11   发布时间:2023-12-06 03:48:30.0
C - 分拆素数和

Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u

Description

把一个偶数拆成两个不同素数的和,有几种拆法呢?

Input

输入包含一些正的偶数,其值不会超过10000,个数不会超过500,若遇0,则结束。

Output

对应每个偶数,输出其拆成不同素数的个数,每个结果占一行。

Sample Input

    
     
30
26
0

Sample Output

    
     
3
2
也是大水题,数据也不大,可以直接暴力过,讲所有的因数枚举一遍,然后判断是都为素数即可
#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);}
}