功能:高效率得到1~n范围内的所有素数.
1 #include <cstdio>
2 #include <iostream>
3
4 using namespace std;
5 const int maxn 10000000
6 bool visit[maxn+3];
7 int prime[maxn], n; ///prime存1~n的所有素数、大概有(x / lnx)个
8
9 void getprime() {
10 memset(visit, false, sizeof(visit));
11 int num = 0;
12 for (int i = 2; i <= n; i++) {
13 if ( !visit[i] ) prime[++num] = i;
14 for (int j = 1; j <= num && i * prime[j] <= n ; j++) {
15 visit[ i * prime[j] ] = true;
16 if (i % prime[j] == 0) break; //点睛之笔
17 }
18 }
19 }
来源:https://www.cnblogs.com/Ash-ly/p/5735497.html