Quiz
https://yukicoder.me/problems/no/312
Submit
https://yukicoder.me/submissions/336225
解法
- 解説の通り
- 素数を探すときはsqrt(N)まででいい、という定石
落とし穴
- N = 大きい素数 x 2
- のとき、解はNではなくN/2
- この問題の設定により、2で割るチェックをしていないので見落としがち
感想
- 素数を探すforループの終了条件で、最初はsqrtを使っていたが以下のように変更した
for(ll i=3; i*i<=N; i++){ if(N%i==0){ p(i); return 0; } }
- sqrtは遅い(間に合うけど)
- 最初、iの型をintにしていたら桁あふれしてしまってTLEした。long longにして解決