码迷,mamicode.com
首页 > 其他好文 > 详细

分拆素数和 HDU - 2098

时间:2016-12-30 02:23:53      阅读:254      评论:0      收藏:0      [点我收藏+]

标签:color   false   结束   class   count   上网   log   做了   name   

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

Input输入包含一些正的偶数,其值不会超过10000,个数不会超过500,若遇0,则结束。Output对应每个偶数,输出其拆成不同素数的个数,每个结果占一行。Sample Input

30
26
0

Sample Output

3
2


一道很水的题,自己做了一下感觉步骤有点麻烦但是上网搜了一下,发现我的居然比网上有些做法简单。。。。拿出来晒一下,大神飘过~~~~
#include<iostream>
#include<cstdio>
#include<math.h>
using namespace std;
bool sub(int p);
int main()
{
    int T = 0;
    while (cin >> T)
    {
        if (T == 0)
            break;
        int count = 0;
        for (int i = 2; i < T / 2; i++)
        {
            int v1 = T - i;
            if (sub(v1) && sub(i))
            {
                count++;
            }
        }
        cout << count << endl;
    }
    return 0;
}
bool sub(int p)
{
    int i = 2;
    for (i = 2; i * i <= p; i++)
    {
        if (p % i == 0)
        {
            break;
        }
    }
    if (i * i > p)
        return true;
    else
        return false;
}

分拆素数和 HDU - 2098

标签:color   false   结束   class   count   上网   log   做了   name   

原文地址:http://www.cnblogs.com/Anony-WhiteLearner/p/6235435.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!