int n, q; cin >> n >> q;
vector<int> pri;
bool is_pri[n+1];
memset(is_pri, 1, sizeof(is_pri));
for(int i=2; i<=n; i++){
if(is_pri[i]) pri.push_back(i);
for(int &x: pri){
if(x*i > n || i%x == 0) break;
is_pri[x*i] = false;
}
}
在is_pri[x*i]=false之前判断退出为什么不可以能给个公式证明一下吗