酷代码 AI
菜单
服务商

题目描述 如果n和n+2都是素数,则称它们是孪生素数。输入m,输出两个数均不超过m的最大孪生素数。 例如 𝑚 = 20 m=20时答案是 17 、 19 17、19, 𝑚 = 1000 m=1000时答案是 881 、 883 881、883。 输入 输入在一行中给出 𝑀 M, 𝑀 M是一个不超过 1000000 1000000的正整数。 输出 不超过 𝑚 m的最大孪生素数,小数在前,大数在后,中间用一个空格分隔。用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 m; std::cin >> m; // 从m开始递减查找孪生素数 for (int i = m - 2; i >= 2; --i) { if (isPrime(i) && isPrime(i + 2)) { std::cout << i << " " << i + 2 << std::endl; break; } } return 0; } ``` [2026-02-08 12:30:58 | AI问答 | 188点数解答]

相关提问
发财导航,免费问AI
实用工具查看更多