C++题目18:输出孪生素数 1. 著名数学家张益唐因为在孪生素数方面的研究在数学界引起了轰动,孪生素数是指一对差值为2的素数。如3和5就是一对孪生素数,11和13也是一对孪生素数。编写程序,输入一个整数,输出小于该整数的最大一对孪生素数。
时间: 2024-04-09 17:27:46 浏览: 42
以下是一个使用C++编写的程序,用于输出小于给定整数的最大一对孪生素数:
```cpp
#include <iostream>
// 检查一个数是否为素数
bool isPrime(int num) {
if(num < 2)
return false;
for(int i = 2; i*i <= num; i++) {
if(num % i == 0)
return false;
}
return true;
}
int main() {
int n;
std::cout << "请输入一个整数:";
std::cin >> n;
int twinPrime1 = 0; // 第一个孪生素数
int twinPrime2 = 0; // 第二个孪生素数
for(int i = n-2; i >= 2; i--) {
if(isPrime(i) && isPrime(i+2)) {
twinPrime1 = i;
twinPrime2 = i+2;
break;
}
}
if(twinPrime1 == 0 && twinPrime2 == 0) {
std::cout << "不存在小于该整数的孪生素数。" << std::endl;
} else {
std::cout << "最大的一对孪生素数为:" << twinPrime1 << " 和 " << twinPrime2 << std::endl;
}
return 0;
}
```
使用该程序,您可以输入一个整数,然后它将输出小于该整数的最大一对孪生素数。例如,如果您输入10,它将输出7和9。如果不存在小于给定整数的孪生素数,则输出相应的消息。
阅读全文