#include using namespace std; //まさかisPrimeに欠陥があったなんて... bool isPrime(long long x){ if(x <= 1) return false; if(x == 2) return true; if(!(x % 2)) return false; for(long long i = 3;i * i <= x;i += 2) if(!(x % i)) return false; return true; } int main(){ long long n; cin >> n; if(isPrime(n)){ cout << n << endl; cout << "isPrime(n)" << endl; return 0; } if(!(n & 1) && isPrime(n / 2)){ cout << n / 2 << endl; cout << "isPrime(n / 2)" << endl; return 0; } for(int i = 3;i * i <= n;i++){ if(n % i == 0){ cout << i << endl; return 0; } } }