#include #include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long ll; typedef unsigned long long ull; typedef long double ld; //const ll mod = 1000000007; const ll mod = 998244353; const ld pi = 3.14159265358979; ll gcd(ll a , ll b){ if(a < b)swap(a , b); if(b == 0)return 1; if(a % b == 0)return b; else return gcd(b , a % b); } bool isPrime(ll x){ if(x == 2 || x == 3 || x == 5 || x == 7){ return true; } for(int i = 3; i * i <= x; i++){ if(x % i == 0)return false; } return true; } /* vector divisor(ll x){ vector ret; ll n = x; for(int i = 2; i * i <= x; i++){ while(n % i == 0){ ret.push_back(i); n /= i; } } if(n > 1)ret.push_back(n); return ret; } */ int main(){ cin.tie(0); ios::sync_with_stdio(false); //cout << fixed << setprecision(15); ll n; cin >> n; int cnt = 0; ll x = n; for(int i = 2; i * i <= n; i++){ while(x % i == 0 && x > 0){ cnt++; x /= i; } } if(n > 1)cnt++; if(cnt >= 3){ cout << "YES" << endl; }else{ cout << "NO" << endl; } return 0; }