#include #include #include #include #include #include #include using namespace std; using ll = long long; #define rep(_I, _N) for(int _I = 0; (_I) < (_N); ++ (_I)) map factorize(ll n) { map t; int m = n; for ( ll i = 2; i * i <= n; ++i ) { while ( (n % i) == 0 ) { t[n] ++; n /= i; } } if ( n != 1 ) { t[n] ++; } return move(t); } bool check(map const& facts) { switch ( facts.size() ) { case 0: return false; case 1: case 2: { int pops = 0; for ( auto&& kv: facts ) { pops += kv.second; } return pops >= 3; } default: return true; } } int main() { ll n; cin >> n; auto facts = factorize(n); cout << (check(facts) ? "YES" : "NO") << endl; return 0; }