結果
| 問題 |
No.371 ぼく悪いプライムじゃないよ
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2016-03-03 15:13:22 |
| 言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 991 bytes |
| コンパイル時間 | 556 ms |
| コンパイル使用メモリ | 65,936 KB |
| 実行使用メモリ | 6,944 KB |
| 最終ジャッジ日時 | 2024-09-24 13:45:50 |
| 合計ジャッジ時間 | 1,644 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 4 |
| other | AC * 41 WA * 1 |
コンパイルメッセージ
main.cpp: In function ‘int main()’:
main.cpp:30:25: warning: ‘maxpf’ may be used uninitialized in this function [-Wmaybe-uninitialized]
30 | if (0<=maxi && n<maxpf)
| ~^~~~~~
ソースコード
#include <iostream>
#include <algorithm>
#include <vector>
#include <cstdio>
#include <cmath>
using namespace std;
typedef long long int llint;
// 最小の素因数を求める。u>=3
llint pfactor(llint u){
if (u%2==0) return 2ll;
for (llint i=3ll;i*i<=u;i+=2ll)
if (u%i==0) return i;
return u;
}
int main(){
llint n,i,t;
llint l,h,hq;
llint maxpf,maxi=-1;
cin>>l>>h;
hq=floor(sqrt(h));
for (n=hq;2ll<=n;n--){
if (h/n*n<l || pfactor(n)!=n)
continue;
if (0<=maxi && n<maxpf)
break;
for (i=h/n;n<=i;i--){
if (i*n<l)
break;
if ((0<=maxi || n!=maxpf) && pfactor(i)==i){
cout<<(i*n)<<endl;
exit(0);
}
t=pfactor(i*n);
if (maxi<0 || (maxpf<t || (maxpf==t && maxi<i*n) )){
maxi=i*n; maxpf=t;
}
}
}
cout<<maxi<<endl;
return 0;
}