素数问题
题目链接:None
题目大意
问你 n 以内有哪些素数,一共多少个。
思路
直接上欧拉筛。
代码
#include<cstdio>
using namespace std;
int n, prime[40001];
bool nosu[40001];
int main() {
// freopen("sushu.in", "r", stdin);
// freopen("sushu.out", "w", stdout);
scanf("%d", &n);
for (int i = 2; i <= n; i++) {
if (!nosu[i]) {
prime[++prime[0]] = i;
printf("%d ", i);
}
for (int j = 1; j <= prime[0] && i * prime[j] <= n; j++) {
nosu[i * prime[j]] = 1;
if (i % prime[j] == 0) break;
}
}
printf("\n%d", prime[0]);
fclose(stdin);
fclose(stdout);
return 0;
}