以下の内容はhttps://blog.hamayanhamayan.com/entry/2020/01/01/024215より取得しました。


Next Prime [AtCoder Beginner Contest 149 C]

https://atcoder.jp/contests/abc149/tasks/abc149_c

前提知識

解説

https://atcoder.jp/contests/abc149/submissions/9263189

素数判定をするが、雑な解き方をすると、106までの素数を全列挙して、X以上の最小の素数を答えればいい。
1~106素数を得るためには、エラトステネスの篩を使えばいい。
1つ1つ素数であるかを判定するのは大変だが、区間なら効率的に判定できることが知られている。
自分はライブラリ化してあるので、それを貼って106までの素数を求めて、lower_boundでX以上の最小値を持ってきて答える。

int X;
//---------------------------------------------------------------------------------------------------
void _main() {
    cin >> X;

    auto vp = makePrimes(1000000);
    int ans = *lower_bound(all(vp), X);
    cout << ans << endl;
}



以上の内容はhttps://blog.hamayanhamayan.com/entry/2020/01/01/024215より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14