#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long ll; #define FOR(i,a,b) for(ll i=(a);i<(b);++i) #define ALL(v) (v).begin(), (v).end() #define p(s) cout<<(s)< factorize(ll n){ map mp; ll sq = sqrt(n); FOR(i, 2, sq+1){ while(n%i==0){ mp[i]++; n/=i; } } // 残り mp[n]++; return mp; } // 素数判定 bool isPrime(ll n){ if (n < 2) return false; else if (n == 2) return true; else if (n % 2 == 0) return false; double sqrtNum = sqrt(n); for (ll i=3; i<=sqrtNum; i+=2){ if (n%i == 0){ return false; } } return true; } int main(){ cin.tie(0); ios::sync_with_stdio(false); // input ll N; cin >> N; if(N==1){ p_no(); return 0; } if(isPrime(N)){ p_no(); }else{ // 素因数分解できる auto mp = factorize(N); ll count = 0; for(auto p : mp){ count += p.second; } if(count>2){ p_yes(); }else{ p_no(); } } return 0; }