2098 分拆素数和

Problem Description

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

Input

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

Output

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

Sample Input

30
26
0

Sample Output

3
2

#include<iostream>
#include<math.h>
using namespace std;
int ss(int n)   //判断素数函数,返回值用于下面if
{
    if(n==2||n==3)
    {
        return 1;
    }
    for(int i=2;i<=sqrt(n);i++)
    {
        if(n%i==0)
        {
            return 0;
        }
    }
    return 1;
}
int main()
{
    int n;
    while(cin>>n)
    {
        int jg=0;
        if(n==0)
        {
            break;
        }
        for(int j=2;j<n/2;j++)
        {
            if(ss(j)&&ss(n-j)) //返回值为俩个1时满足条件
            {
                jg++;
            }
        }
        cout<<jg<<endl;
    }
}

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

推荐阅读更多精彩内容

  • Problem Description把一个偶数拆成两个不同素数的和,有几种拆法呢? Input输入包含一些正的偶...
    Gip_6ccf阅读 410评论 0 0
  • OJ 2098(http://acm.hdu.edu.cn/showproblem.php?pid=2098) P...
    Chikcharry阅读 179评论 0 0
  • 源题:Problem - 2098 问题描述:把一个偶数拆成两个不同素数的和,有几种拆法呢? 输入:输入包含一些正...
    劳斯鸡阅读 1,179评论 0 0
  • 素数和问题 Description Given an even number ( greater than 2 )...
    Vmmmg阅读 411评论 0 0
  • Prime Ring Problem Problem Description A ring is compose ...
    harvey_dong阅读 1,087评论 0 0