題目:
令 Pi 表示第 i 個素數。現任給兩個正整數 M≤N≤104,請輸出 PM 到 PN 的全部素數。
來源《算法筆記》
代碼以下算法
#include <stdio.h> const int maxn = 1000001; int prime[maxn], num = 0; bool p[maxn] = {0}; void Find_Prime(int n) { for (int i = 2; i < maxn; i++) { if (p[i] == false) { prime[num++] = i; if (num >= n)//由於只要N個素數 後面的就不須要了。 break; for (int j = i + i; j < maxn; j += i) { p[j] = true; } } } } int main() { int m, n, count = 0; scanf("%d%d", &m, &n); Find_Prime(n); for (int i = m; i <= n; i++) { printf("%d", prime[i - 1]); count++; if (count % 10 != 0 && i < n) printf(" "); else { printf("\n"); } } return 0; }