1013 数素数 (20 分)
1013 数素数 (20 分)
令 Pi 表示第 i 个素数。现任给两个正整数 M≤N≤104,请输出 PM 到 PN 的所有素数。
输入格式:
输入在一行中给出 M 和 N,其间以空格分隔。
输出格式:
输出从 PM 到 PN 的所有素数,每 10 个数字占 1 行,其间以空格分隔,但行末不得有多余空格。
输入样例:
5 27
输出样例:
11 13 17 19 23 29 31 37 41 43
47 53 59 61 67 71 73 79 83 89
97 101 103
思路:
注意
超时问题
#include <iostream>
#include <math.h>
using namespace std;
int primeNum[1000001] = { 2,3,5,7 }, index = 4;
void prime(int N) {
int k = 0;
for (int i = 3; i <= 1000001; i += 2) {
for (int j = 3; j <= (int)sqrt(i); j++)
if (i%j == 0) break;
else if (j == (int)sqrt(i)) primeNum[index++] = i, k++;
if (k == N) break;
}
}
void primePut(int M, int N) {
int index = 0;
for (int i = M - 1; i <= N - 1; i++)
{
index++;
if (i == N - 1) cout << primeNum[i];
else if (!(index % 10)) cout << primeNum[i] << endl;
else cout << primeNum[i] << ' ';
}
}
int main()
{
int M, N;
cin >> M >> N;
prime(N);
primePut(M, N);
return 0;
}
来源:CSDN
作者:蒟蒻%
链接:https://blog.csdn.net/weixin_43910320/article/details/104680432