C++输入数字n,找到小于n的相邻两个差距最大的素数,(如果差相同,则输出数字较小的那一组)。 格式提醒:
时间: 2024-05-15 21:14:18 浏览: 82
以下是C++代码实现:
```c++
#include <iostream>
#include <cmath>
using namespace std;
bool isPrime(int n) // 判断素数函数
{
if (n <= 1)
return false;
for (int i = 2; i <= sqrt(n); i++)
if (n % i == 0)
return false;
return true;
}
int main()
{
int n;
cin >> n;
int maxDiff = 0, maxP1 = 0, maxP2 = 0;
for (int i = n - 1; i >= 2; i--)
{
if (isPrime(i)) // 找到第一个素数
{
for (int j = i - 1; j >= 2; j--) // 从i往前找素数
{
if (isPrime(j))
{
int diff = i - j;
if (diff > maxDiff)
{
maxDiff = diff;
maxP1 = i;
maxP2 = j;
}
break;
}
}
break;
}
}
cout << maxP2 << " " << maxP1 << endl; // 输出结果
return 0;
}
```
输入格式:
```
一个整数n (2 <= n <= 10^6)
```
输出格式:
```
两个整数,中间用空格隔开,表示小于n的相邻两个差距最大的素数
```
阅读全文