您的位置:首页 > 其它

题目1040:Prime Number

2013-12-18 22:05 211 查看
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
#include <bitset>

using namespace std;

const int N = 110000;

bitset<N> vis;
vector<int> vPrime;

void sieve();

int main()
{
int n;

#ifndef ONLINE_JUDGE
ifstream cin("d:\\OJ\\uva_in.txt");
#endif // ONLINE_JUDGE

sieve();

while (cin >> n) {
cout << vPrime[n - 1] << endl;
}

return 0;
}

void sieve()
{
vis.set();
vis[0] = vis[1] = 0;

for (int i = 2; i < 1004; i++) {
if (vis[i]) {
for (int j = i * i; j < N; j += i) vis[j] = 0;
}
}

for (int i = 2; i < N; i++) {
if (vis[i]) {
vPrime.push_back(i);
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: