結果
問題 | No.3035 2018 |
ユーザー | kurenai3110 |
提出日時 | 2018-04-02 00:06:40 |
言語 | C++11 (gcc 11.4.0) |
結果 |
AC
|
実行時間 | 1,632 ms / 2,000 ms |
コード長 | 1,030 bytes |
コンパイル時間 | 510 ms |
コンパイル使用メモリ | 60,380 KB |
実行使用メモリ | 14,664 KB |
最終ジャッジ日時 | 2024-06-26 06:18:01 |
合計ジャッジ時間 | 18,955 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 1,617 ms
14,664 KB |
testcase_01 | AC | 1,631 ms
14,540 KB |
testcase_02 | AC | 1,618 ms
14,540 KB |
testcase_03 | AC | 1,630 ms
14,532 KB |
testcase_04 | AC | 1,623 ms
14,540 KB |
testcase_05 | AC | 1,632 ms
14,664 KB |
testcase_06 | AC | 1,624 ms
14,664 KB |
testcase_07 | AC | 1,623 ms
14,536 KB |
testcase_08 | AC | 1,629 ms
14,664 KB |
testcase_09 | AC | 1,619 ms
14,664 KB |
ソースコード
#include <iostream> #include <vector> using namespace std; bool f[5111444]; bool not_prime[5111444]; int main() { int y = 5111443; not_prime[0] = true; not_prime[1] = true; vector<int>primes; for (int i = 2; i <= y; i++) { if (not_prime[i])continue; int x = i; bool flag = true; for (int j = 2; j*j <= x; j++) { if (x%j == 0) { flag = false; break; } } if (flag) { for (int j = 2 * i; j <= y; j += i) { not_prime[j] = true; } } } for (int i = 2; i <= y; i++) { if (not_prime[i]==false)primes.push_back(i); } bool flag = true; for (int i = 0; i < primes.size(); i++) { long long a = primes[i]; if (flag && a*a*a > y)flag = false; if (flag)f[a*a*a] = true; for (int j = i + 1; j < primes.size(); j++) { long long b = primes[j]; long long c = a*b; if (c > y)break; f[c] = true; } } int N; cin >> N; int cnt = 0; for (int i = 0; i <= y; i++) { if (f[i]) { cnt++; } if (cnt == N) { cout << i << endl; break; } } return 0; }