結果
問題 |
No.371 ぼく悪いプライムじゃないよ
|
ユーザー |
![]() |
提出日時 | 2016-10-07 01:01:47 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,514 bytes |
コンパイル時間 | 993 ms |
コンパイル使用メモリ | 87,816 KB |
実行使用メモリ | 175,232 KB |
最終ジャッジ日時 | 2024-11-21 19:01:54 |
合計ジャッジ時間 | 11,464 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 WA * 1 |
other | AC * 16 WA * 5 RE * 17 TLE * 4 |
ソースコード
#include<iostream> #include<cstdio> #include<algorithm> #include<cmath> #include<string> #include<vector> #include<map> #include<list> #include<stack> #include<queue> #include<climits> //INT_MIN/MAX using namespace std; #define FOR(i,s,e) for(int (i)=(s);(i)<(e);(i)++) #define FORR(i,s,e) for(int (i)=(s);(i)>(e);(i)--) #define MOD 1000000007 #define llong long long int main() { cin.tie(0); ios_base::sync_with_stdio(false); llong int L, H; cin >> L >> H; int n = sqrt(H); vector<int> prime; vector<bool> a(n*n+2); for (int s = 2; s <= n; s++) { if (a[s] == false) { for (long j = s*s; j <= n; j += s) { a[j] = true; } prime.push_back(s); } } FORR(i, prime.size() - 1, -1) { if (prime[i] * prime[i] <= H) for (long long int j = H / prime[i]; j >= (L + prime[i] - 1) / prime[i]; j--) { //if (j%prime[i] == 0) { // if (i == 0) { //素因数が最小の素数の場合 -> 2 // cout << j << endl; // return 0; // } for (int p = i - 1; p >= 0; p--) { if (j%prime[p] == 0) { break; } if (p == 0 && j%prime[p] != 0) { cout << j*prime[i] << endl; return 0; } } } } return 0; }