/* -*- coding: utf-8 -*- * * 36.cc: No.36 素数が嫌い! - yukicoder */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; /* constant */ const int MAX_P = 10000000; /* typedef */ typedef long long ll; /* global variables */ bool primes[MAX_P + 1]; /* subroutines */ void gen_primes(int maxp) { memset(primes, true, sizeof(primes)); primes[0] = primes[1] = false; int p; for (p = 2; p * p <= maxp; p++) if (primes[p]) for (int q = p * p; q <= maxp; q += p) primes[q] = false; } /* main */ int main() { ll n; cin >> n; ll maxp; for (maxp = 1; maxp * maxp < n; maxp++); gen_primes(maxp); int c = 0; for (int p = 2; n > 1 && p <= maxp; p++) if (primes[p]) { while (n % p == 0) c++, n /= p; if (c > 2) { puts("YES"); return 0; } } if (c > 1 && n > 1) puts("YES"); else puts("NO"); return 0; }