首页 > 其他 > 详细

40: 分拆素数和

时间:2020-03-04 14:25:55      阅读:79      评论:0      收藏:0      [点我收藏+]

40 分拆素数和

作者: xxx时间限制: 1S章节: 函数

问题描述 :

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

说明:

比如10,可以拆成3+7和5+5以及7+3,

但是3+7与7+3相同,只算一种,5+5由于两个素数相同,不计算在内。

因此,10的拆法只有一种。

输入说明 :

首先输入一个T(不超过500),然后输入T个正的偶数,其值不会超过10000。

输出说明 :

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

输入范例 :
4
4
6
8
10

输出范例 :
0
0
1
1

代码:

#include <stdio.h>
int main()
{
    int hash[10000] = { 0 };
    hash[0] = hash[1] = 1;
    for (int i = 2; i < 10000; i++)
    {
        if (hash[i] == 0)
        {
            for (int j = i + i; j < 10000; j = j + i)
            {
                hash[j] = 1;
            }
        }
    }
    int n, m;
    int num = 0;
    while (scanf("%d", &n) != EOF)
    {
        for (int k = 0; k < n; k++)
        {
            scanf("%d", &m);
            for (int i = 2; i < m/2; i++)
            {
                if ((hash[i] == 0&&hash[m-i]==0)&&i!=m-i)
                {
                    num++;
                }
            }
            printf("%d\n", num);
            num = 0;
        }
    }
    return 0;
}

40: 分拆素数和

原文:https://www.cnblogs.com/VictorierJwr/p/12408807.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!