酷代码 AI
菜单
全部AI  /  热门  /  AI写代码神器
服务商

【题目描述】 小X最近在学习素数,那些约数只有1和它本身的数字被称为素数。同时小X也学会了用这个方法去判定素数。于是小X想要知道第n大的素数是多少。 【输入描述】 一行一个整数n,如题目描述中表示的含义。 【输出描述】 一行一个整数,表示第n大的素数。 【输入样例】 10 【输出样例】 29 【数据范围及约定】 对于100%的数据,1≤n≤104 c++

以下是解决该问题的 C++ 代码: ```cpp #include <iostream> using namespace std; // 判断一个数是否为素数的函数 bool isPrime(int num) { if (num < 2) return false; // 小于 2 的数不是素数 for (int i = 2; i * i <= num; i++) { if (num % i == 0) return false; // 如果能被除 1 和它本身以外的数整除,不是素数 } return true; } int main() { int n; cin >> n; // 读取输入的 n int count = 0; // 记录找到的素数的个数 int num = 2; // 从最小的素数 2 开始检查 while (true) { if (isPrime(num)) { count++; // 如果是素数,素数个数加 1 if (count == n) { // 当找到第 n 个素数时 cout << num << endl; // 输出该素数 break; // 结束循环 } } num++; // 检查下一个数 } return 0; } ``` 代码解释 1. `isPrime` 函数:用于判断一个数是否为素数。对于小于 2 的数,直接返回 `false`;对于大于等于 2 的数,从 2 开始检查到该数的平方根,如果能被整除,则不是素数,返回 `false`,否则返回 `true`。 2. `main` 函数: - 读取输入的 `n`。 - 使用 `count` 记录找到的素数的个数,从 2 开始检查每个数是否为素数。 - 当找到一个素数时,`count` 加 1,当 `count` 等于 `n` 时,输出该素数并结束循环。 额外需要注意的逻辑点 1. 素数的判断范围:在 `isPrime` 函数中,只需要检查到该数的平方根,这样可以减少不必要的检查,提高效率。 2. 素数的起始值:素数是从 2 开始的,因此在 `main` 函数中,从 2 开始检查每个数是否为素数。 3. 循环的结束条件:在 `main` 函数中,使用 `while (true)` 循环,当找到第 `n` 个素数时,使用 `break` 语句结束循环。 [2025-06-14 20:59:10 | AI写代码神器 | 602点数解答]

相关提问