杭电——2098分拆素数和

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

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

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

Sample Input
30
26
0

Sample Output
3
2

http://acm.hdu.edu.cn/showproblem.php?pid=2098


#include <stdio.h>
#include <math.h>
int sushu(int a);
int main() {
    int n;
    while(~scanf("%d",&n)&&n!=0) {
        int count=0;
        for(int i=2; i<n/2; i++) {

            if(sushu(i)&&sushu(n-i)) {
                count++;
            }

        }
        printf("%d\n",count);
    }

}
int sushu(int a) {
    int flag=1;
    for(int i=2; i<=sqrt(a); i++) {
        if(a%i==0) {
            flag=0;
            break;
        }
    }
    return flag;
}

穷举

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容