#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; using ll = long long; using namespace atcoder; vector prime_numbers(ll n){ if (n <= 1){ return vector(0); } vector ans = {2}; for(ll i = 3;i <= n;i++){ bool is_prime = true; for(ll j = 0; ans[j] * ans[j] <= i;j++){ if (i % ans[j] == 0){ is_prime = false; break; } } if (is_prime){ ans.push_back(i); } } return ans; } vector primes = prime_numbers(1000001); void decomposite(ll N, map &factors,ll p_index = 0){ if (N == 1){ return; } while (primes[p_index] * primes[p_index] <= N ) { if (N % primes[p_index] == 0) { factors[primes[p_index]] += 1; decomposite(N/primes[p_index],factors,p_index); return; } else { p_index++; } } factors[N] += 1; } int solve() { ll N; cin >> N; map dec; decomposite(N,dec); if (dec.size() <= 2){ cout << "Yes\n"; }else{ cout << "No\n"; } return 0; } int main() { // ll T; // cin >> T; // while(T--){ solve(); // } return 0; }