题解 | #Prime Number#
Prime Number
https://www.nowcoder.com/practice/c5f8688cea8a4a9a88edbd67d1358415
#include <bits/stdc++.h>
using namespace std;
#define MAX 10001
bool isPrim(int num) { // 优化:使用平方根
for (int i = 2; i <= sqrt(num); i++) if (num % i == 0) return false;
return true;
}
void getAllPrim(int* parr) { // 首先计算出所有的前10000个质数,存入矩阵
int count = 1, num = 2;
while (count < MAX) {
if (isPrim(num)) parr[count++] = num;
num++;
}
}
int main() {
int parr[MAX];
getAllPrim(parr);
int k;
while (cin >> k) cout << parr[k] << endl; //直接查表
return 0;
}

查看10道真题和解析