Particle

競技プログラミングについての雑記

SRM 661 Div1 Easy MissingLCM

lcm は、各素数ごとに max を取るのと同じなので、各素数ごとに独立に M の lower bound を計算できる。

class MissingLCM {
	public:
		bool isPrime(ll x){
			if(x<=1) return false;
			for(ll i = 2; i*i <= x; i++) if(x%i==0) return false;
			return true;
		}
	int getMin(int N) {
		ll res = N+1;
		for(ll i = 2; i <= N; i++){
			if(!isPrime(i)) continue;
			ll j = i;
			while(j*i<=N) j *= i;
			ll x = (N/j+1)*j;
			chmax(res, x);
		}
		return res;
	}
};