华为机试——查找组成一个偶数最接近的两个素数

来源:互联网 发布:免费淘宝培训班义乌 编辑:程序博客网 时间:2024/06/03 23:49

题目:查找组成一个偶数最接近的两个素数

任意一个偶数(大于2)都可以由两个素数组成,组成偶数的2个素数有很多冲情况,本题目要求输出组成指定偶数的两个素数差值最小的素数对。

#include<iostream>#include<cmath>using namespace std;bool isPrime(int n){    if(n<2) return false;    int m=static_cast<int>(sqrt(static_cast<double>(n)));    for(int i=2;i<=m;i++)        if(n%i==0)             return false;    return true;}void findPrimeNumber(int num){    for(int i=num/2;i>=2;i--)        if(isPrime(i) && isPrime(num-i))        {            cout<<i<<" "<<num-i<<endl;            break;        }}int main(){    int number;    cin>>number;    if(number%2!=0)        return -1;    findPrimeNumber(number);    return 0;}
0 0