今天刷到刷到这题,以前马蜂太丑就改了下马蜂。
只是把一个局部变量定义为了全局变量,就 WA 了,其他没任何区别。
一个 100pts,一个 0pts,求助
100pts
#include<bits/stdc++.h>
using namespace std;
bool f[100000005];
int pri[1000005];
int main(){
std::ios::sync_with_stdio(0);
memset(f, 1, sizeof(f));
int n, q;
int k;
cin >> n >> q;
int cnt = 0;
for(int i = 2; i <= n; i++){
if(f[i]){
pri[cnt++] = i;
}
for(int j = 0; j < cnt && pri[j] * i <= n; j++){
f[pri[j] * i] = 0;
if(i % pri[j] == 0){
break;
}
}
}
while(q--){
cin >> k;
cout << pri[k - 1] << "\n";
}
return 0;
}
0pts #include<bits/stdc++.h> using namespace std; bool f[100000005]; int n, q, k, pri[1000005]; int main(){ std::ios::sync_with_stdio(0); memset(f, 1, sizeof(f)); cin >> n >> q; int cnt = 0; for(int i = 2; i <= n; i++){ if(f[i]){ pri[cnt++] = i; } for(int j = 0; j < cnt && pri[j] * i <= n; j++){ f[pri[j] * i] = 0; if(i % pri[j] == 0){ break; } } } while(q--){ cin >> k; cout << pri[k - 1] << "\n"; } return 0; }