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

分拆素数和

时间:2020-02-29 20:11:33      阅读:58      评论:0      收藏:0      [点我收藏+]

标签:title   class   nbsp   log   math   scan   target   targe   偶数   

此博客链接:https://www.cnblogs.com/ping2yingshi/p/12384918.html

分拆素数和(28min)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2098

Problem Description
把一个偶数拆成两个不同素数的和,有几种拆法呢?
 
Input
输入包含一些正的偶数,其值不会超过10000,个数不会超过500,若遇0,则结束。
 
Output
对应每个偶数,输出其拆成不同素数的个数,每个结果占一行。
 
Sample Input
30
26
0
 
Sample Output
3
2
题解:
       方法:判断素数
       思路:对于给定的数,分拆两个数后,分别对这两个数判断是不是素数,同时是素数时,个数才加一。
       注意:在素数判断函数中,循环从2到判断的数开根号这里,注意要小于等于开根号的数。
       耗时原因:一开始没有看到时分成两个数,还以为好多数,这把我难的。
代码如下:  
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
#include<string.h>
int   IsPrim(int x)
{
    int i;
    int flag = 1;
    for (i = 2; i <= sqrt(x); i++)
    {
        if (x % i == 0)//判断是不是素数
            flag = 0;
    }
    return flag;
}
int main()
{
    int n;
    while (~scanf_s("%d",&n))
    { 
        if (n == 0)
            break;
        int a;
        int b;
        int count=0;//计算满足条件数量
        for (a = 2; a < n / 2; a++)
        {
            b = n - a;
            if (IsPrim(a) && IsPrim(b))
            {
               count++;
        
            }
               
        }
        
        printf("%d\n", count);
     
    }
    return 0;
}

 

分拆素数和

标签:title   class   nbsp   log   math   scan   target   targe   偶数   

原文地址:https://www.cnblogs.com/ping2yingshi/p/12384918.html

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