和为偶数的两个素数

题目描述

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

输入描述:

输入一个偶数

输出描述:

输出两个素数

输入例子:

20

输出例子:

7 13

调试通过的代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
//write code here
#include <iostream>
using namespace std;
#include "math.h"
bool isprime(int num){
if(num==1) return true;
int sq = sqrt(num);
for (int i = 2; i <= sq; ++i)
{
if(num%i==0)
return false;
}
return true;
}

int main()
{

int num;
while(cin>>num){
int low,high;
low = high = num>>1;
while(low>=1 && high <= num-1){
while( !isprime(low) ) low--;
while( !isprime(high) ) high++;
if( low+high == num){
cout<<low<<endl<<high<<endl;
break;
}
else if ( low+high < num )
{
high++;
}
else
low--;
}

}
return 0;
}

来源:牛客网

文章目录
  1. 1. 题目描述
    1. 1.1. 输入描述:
    2. 1.2. 输出描述:
    3. 1.3. 输入例子:
    4. 1.4. 输出例子:
  2. 2. 调试通过的代码
|