結果
問題 |
No.371 ぼく悪いプライムじゃないよ
|
ユーザー |
|
提出日時 | 2016-05-14 04:46:00 |
言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 4 ms / 1,000 ms |
コード長 | 690 bytes |
コンパイル時間 | 1,953 ms |
コンパイル使用メモリ | 163,084 KB |
実行使用メモリ | 5,248 KB |
最終ジャッジ日時 | 2024-12-30 18:10:52 |
合計ジャッジ時間 | 2,952 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 42 |
ソースコード
#include <bits/stdc++.h> using namespace std; long long factor(long long n) { for (long long i = 2; i * i <= n; i++) { if (n % i == 0) return i; } return n; } int main() { long long L, H; cin >> L >> H; const int N = 1e5 + 100; vector<long long> primes; vector<bool> is_prime(N, true); for (long long i = 2; i < N; i++) { if (is_prime[i]) { primes.push_back(i); for (long long j = i * 2; j < N; j += i) { is_prime[j] = false; } } } reverse(primes.begin(), primes.end()); for (long long p : primes) { if (p * p > H) continue; for (long long q = H / p; p * q >= L; q--) { if (factor(q) >= p) { cout << p * q << endl; return 0; } } } }