题解
【入门】求出N以内的全部素数,并按每行五个数显示
1 条题解
-
0
解题思路
从 2 开始检查到 n 的每一个数。 如果一个数没有除了 1 和它本身以外的约数,它就是素数。 每找到 5 个素数就换一行输出。
参考代码
#include <iostream> using namespace std; int main() { int n; cin >> n; // 读入范围的上限 int cnt = 0; // 记录已经输出了多少个素数 for (int i = 2; i <= n; i++) { bool ok = true; // 假设 i 是素数 // 检查 i 是否能被 2 到 sqrt(i) 之间的数整除 for (int j = 2; j * j <= i; j++) { if (i % j == 0) { ok = false; // 找到约数,说明 i 不是素数 break; } } if (ok) { cout << i << " "; // 输出当前素数 cnt++; if (cnt % 5 == 0) cout << endl; // 每 5 个数换行 } } return 0; }复杂度分析
外层枚举 n 个数,每个数最多检查到它的平方根,空间复杂度为 O(1)。
- 1