输出n以内所有的素数。 保证 n 是100以内的整数。
输入:5 输出:[2, 3, 5]
#include <iostream> #include <cstdio> #include <cmath> using namespace std; // 判断一个整数是否为素数 bool isPrime(int n) { if (n < 2) { return false; } int num = sqrt(n); // 从 [2, sqrt(num)] 依次判断能否被 n 整除。 // ①若只要存在一个整数能被 n 整除,则不是素数;②若不存在,则表示 n 是素数。 for (int i = 2; i <= num; i++) { if (n % i == 0) { return false; } } return true; } int main() { int n = 100; for (int i = 0; i <= n; i++) { if (isPrime(i)) { printf("%d ", i); } } printf("\n"); return 0; }
#include <iostream> #include <cstdio> #include <cmath> using namespace std; int main() { int n = 100; int i = 0; int j = 0; for (i = 0; i <=n; i++) { // 0,1 不是素数,直接跳过 if (i < 2) { continue; } int num = sqrt(i); for (j = 2; j <= num; j++) { // 若 i 不是素数,则判断下一个整数是否为素数 if (i % j == 0) { break; } } if (j > num) { printf("我是素数——%d\n", i); } } printf("\n"); return 0; }
【结果】
我是素数——2 我是素数——3 我是素数——5 我是素数——7 我是素数——11 我是素数——13 我是素数——17 我是素数——19 我是素数——23 我是素数——29 我是素数——31 我是素数——37 我是素数——41 我是素数——43 我是素数——47 我是素数——53 我是素数——59 我是素数——61 我是素数——67 我是素数——71 我是素数——73 我是素数——79 我是素数——83 我是素数——89 我是素数——97 Process returned 0 (0x0) execution time : 0.115 s Press any key to continue.