题目描述:
任意一个偶数(大于2)都可以由2个素数组成,组成偶数的2个素数有很多种情况,本题目要求输出组成指定偶数的两个素数差值最小的素数对。
请实现如下接口:
public static class PrimePair{
public int primeMin;
public int primeMax;
}
public static PrimePair findPrimeNumber(int number)
{
/* 请实现 */
return null;
}
譬如: 输入20 ,输出 7 13
约束: number为输入的偶数,5 < inum <= 10000
知识点: 循环
输入: 输入一个偶数输出:
较小的素数
较大的素数
样例输入:
20
样例输出:
7
13
代码:
#include <iostream>
#define MIN 5
#define MAX 10000
using namespace std;
int isPrime(int num)
{
for (int i = 2; i <= sqrt(num); i++)
if (num%i == 0)
return 0;
return 1;
}
int main()
{
int num;
cin >> num;
if (num <= MIN || num > MAX || num % 2 != 0)
return -1;
int ave = num / 2;
for (int i = 1; i < ave; i++)
if (isPrime(ave - i) && isPrime(ave + i))
{
cout << ave - i << endl << ave + i << endl;
break;
}
return 0;
}
得分 | 运行时间 | 内存 | 复杂度 | 最大嵌套深度 |
100(100) | 16ms | 2068KB | 7 | 3 |