笨办法,本来想用一维数组记录标记素数的办法确定素数集合的,但是最大范围不好确定
#include <iostream>
#include "cmath"
#include "vector"
using namespace std;
bool isPrime(int a) {
int bound = sqrt(a);
for (int i = 2; i <= bound; i++) {
if (a % i == 0) return false;
}
return true;
}
int main() {
vector<int> primes;
int num = 2;
while (primes.size() < 10000) {
if (isPrime(num)) primes.push_back(num);
num++;
}
int n;
while (cin >> n) { // 注意 while 处理多个 case
// cout << a + b << endl;
cout << primes[n-1] << endl;
}
}
// 64 位输出请用 printf("%lld")

京公网安备 11010502036488号