题目:
令 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; }