結果
問題 |
No.371 ぼく悪いプライムじゃないよ
|
ユーザー |
|
提出日時 | 2016-05-14 00:25:38 |
言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 881 bytes |
コンパイル時間 | 1,279 ms |
コンパイル使用メモリ | 163,792 KB |
実行使用メモリ | 6,824 KB |
最終ジャッジ日時 | 2024-10-05 19:24:37 |
合計ジャッジ時間 | 3,761 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 31 WA * 10 TLE * 1 |
ソースコード
#include <bits/stdc++.h> using namespace std; int main() { long long L, H; cin >> L >> H; const int N = 2e5 + 100; vector<long long> primes; vector<char> is_prime(N, true); for (int i = 2; i < N; i++) { if (is_prime[i]) { primes.push_back(i); for (int j = i * 2; j < N; j += i) { is_prime[j] = false; } } } if (H - L <= 200200) { pair<long long, long long> ans; for (long long i = L; i <= H; i++) { long long p = 1; for (int j = 0; j < primes.size(); j++) { if (i % primes[j] == 0) { if (i != primes[j]) p = primes[j]; break; } } if (p != 1) ans = max(ans, make_pair(p, i)); } cout << ans.second << endl; return 0; } for (int i = primes.size() - 1; i >= 0; i--) { long long cand = primes[i] * primes[i]; if (L <= cand && cand <= H) { cout << cand << endl; return 0; } } cout << "fail" << endl; }