#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; using ll = long long; using vi = vector; using vvi = vector; using vl = vector; using vvl = vector; using vb = vector; using vvb = vector; using vd = vector; using vs = vector; using pii = pair; using pll = pair; using pdd = pair; using vpii = vector; using vpll = vector; using vpdd = vector; const int inf = (1 << 30) - 1; const ll INF = 1LL << 60; //const int MOD = 1000000007; const int MOD = 998244353; void divisors(ll x, vector& v) { for (ll i = 1; i * i <= x; i++) { if (x % i == 0) { v.push_back(i); if (x / i != i) v.push_back(x / i); } } sort(v.begin(), v.end()); return; } bool isPrime(ll n) { if (n < 2) return false; if (n == 2) return true; if (n % 2 == 0) return false; int imax = sqrt(n); for (int i = 3; i <= imax; i++) { if (n % i == 0) return false; } return true; } int main() { ll n; cin >> n; vl div; divisors(n, div); for (int i = 0; i < div.size(); i++) { if (div[i] == 1 || div[i] == n) continue; if (isPrime(div[i])) continue; cout << "YES" << endl; return 0; } cout << "NO" << endl; return 0; }