//x文字の#を空文字に置換すると、N % x文字残る。 //基本的にはN % x == 0となる最小のxを求めてあげれば良い。 //(ただし、##を消さないために、xは3以上にする必要がある。) //なお、約数の対称性より、Nが合成数ならばxの最小値もSQLT(N)以下になるのでxが大きくなったらNは素数である。 //このときはNを出力すればよい。 // #include using namespace std; int main() { long long n; cin >> n; for( int x = 3; x <= 1000000; x++ ){ if( n % x == 0 ){ cout << x << endl; return 0; } } cout << n << endl; return 0; }