Time Limit: 1 secs, Memory Limit: 32 MB
Description
A prime number is a natural number which has exactly two distinct natural number divisors: 1 and itself. The first prime number is 2. Can you write a program that computes the nth prime number, given a number n <= 10000?
Input
The input contains just one number which is the number n as described above.
The maximum value of n is 10000.
Output
The output consists of a single line with an integer that is the nth prime number.
Sample Input
30
Sample Output
113
︿( ̄︶ ̄)︿ Just do it!
#include <iostream>
#include <cstring>
#include <vector>
#include <cmath>
using namespace std;
bool prime[110000];
void getPrime()
{
memset(prime, true, sizeof(prime));
// think about i < sqrt(110000)
for (int i = 2; i < sqrt(110000); i++) {
if (!prime[i])
continue;
else{
for (int j = i * i; j < 110000; j += i)
prime[j] = false;
}
}
}
int main()
{
vector<int> op;
int num, i = 2;
getPrime();
while (i < 110000) {
if (prime[i])
op.push_back(i);
i++;
}
cin >> num;
cout << op[--num] << endl;
}