頭良くなりたい人

文系大学生shadeのブログです。競技プログラミングや人文学の話題,受験ネタなど。

ABC149 C - Next Prime

問題はこちら atcoder.jp

方針

2 以上の整数 N について,N 未満のすべての素数で割り切れなければ,N素数である,という普通の素数判定。

コード

#include <bits/stdc++.h>
using namespace std;

int main(){
    int x;
    cin>>x;

    vector<int> p={2};
    bool not_prime=false;
    int i=2;

    while(i<=x || (not_prime==true && i>x)){
        not_prime=false;
        for(int j=0; j<p.size(); j++){
            if(i%p[j]==0){
                not_prime=true;
                break;
            }
        }
        if(not_prime==false){
            p.push_back(i);
        }
        i++;
    }

    cout<<(x==2 ? 2 : p[p.size()-1])<<endl;
}