我在做题的时候写了一个埃氏筛,发生了一个离谱的事情
#include <iostream>
#include <cstdio>
using namespace std;
const int N = 1e6 + 5, M = 1e3;
int n = 1e6, m, primes[M];
bool f[N];
int main() {
f[1] = 1; n = 1e6;
for(int i = 2; i <= n; i ++) {
if(!f[i]) {
primes[++m] = i;
for(int j = 2; j <= n / i; j ++)
f[i * j] = 1;
}
}
cout << f[9];
return 0;
}
我发现 f 数组不对,就试着输出了一个 f[9]。。。
结!果!输!出!了!30!
f 使用bool定义的呀?为什么会输出三十,求教