【华为oj】查找组成一个偶数最接近的两个素数

来源:互联网 发布:网站推广工作是seo吗 编辑:程序博客网 时间:2024/05/16 07:52
问题描述:任意一个偶数(大于2)都可以由2个素数组成,组成偶数的2个素数有很多种情况,本题目要求输出组成指定偶数的两个素数差值最小的素数对 请实现如下接口
    public static class PrimePair
    {
       public int primeMin;
       public int primeMax;
    }
    public static PrimePair findPrimeNumber(int number)
    {
        /* 请实现 */
 
 
       return null;
    }
 

譬如:

输入20

输出 

13

问题分析:素数就是质数,其判断用自定义函数isprime()实现

代码

#include <iostream>#include <math.h>using namespace std;bool isprime(int n);int main(){int n;cin>>n;int a,b;int mind=INT_MAX;int i=0;for(i=0;i<n/2+2;++i){if(isprime(i)&&isprime(n-i)){if(mind>n-2*i){mind=n-2*i;a=i;b=n-i;}}}cout<<a<<endl;cout<<b<<endl;return 0;}bool isprime(int n){int i,c=0;for(i=1;i<n/2+2;++i){if(n%i==0)++c;}if(c==1)return true;elsereturn false;}

0 0
原创粉丝点击