埃氏筛法
对我来说,这是个很陌生的名词,,听都没听说过(是的我太菜比了)
但是当我看到代码后……woc这个不就是……
没错,以前写的最多的素数筛
原理,素数的倍数都是合数,利用这个性质……,把所有的合数筛去,剩下的就都是素数了
代码:
#include <iostream>
#include <math.h>
using namespace std;
bool not_prime[50005];
int prime [10000], cnt;
void pr_pr (int max_num) {
for (int i = 2;i <= max_num; ++ i) {
if (!not_prime[i]) {
cout << i << " ";
prime [cnt++] = i;
for (int j = 2;i * j <= max_num; ++ j) {
not_prime [i * j] = 1;
}
}
}
}
int main () {
int a;
cin >> a;
pr_pr (a);
return 0;
}