酷代码 AI
菜单
服务商

求解 1 至 n 内第 k 大孤独数:质数与余数的巧妙探寻

```cpp #include <iostream> #include <vector> #include <algorithm> // 判断一个数是否为质数 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, m, r, k; std::cin >> n >> m >> r >> k; std::vector<int> lonelyNumbers; // 找出 1 到 n 内所有孤独数 for (int i = 1; i <= n; i++) { if (isPrime(i) && i % m == r) { lonelyNumbers.push_back(i); } } // 对孤独数从大到小排序 std::sort(lonelyNumbers.begin(), lonelyNumbers.end(), std::greater<int>()); // 判断是否存在第 k 大的孤独数 if (lonelyNumbers.size() < k) { std::cout << -1 << std::endl; } else { std::cout << lonelyNumbers[k - 1] << std::endl; } return 0; } ``` ######[AI问答 | 298点数解答 | 2025-11-10 20:01:57]

本站限时免费提问中
实用工具查看更多
Linux在线手册 [开发类]
Jquery在线手册 [开发类]
今日油价 [生活类]
图片互转base64 [开发类]
时间转换器 [开发类]