#include using namespace std; #define ll long long #define ull unsigned long long #define ld long double #define PI 3.1415926535897932384626433832795l #define pb push_back #define forn(i, a, n) for (int i = a; i < n; i++) #define forrn(i, a, n) for (int i = n - 1; i >= a; i--) #define inputArr(arr) forn(i, 0, arr.size()) cin >> arr[i] #define inputArrRange(arr, a, b) forn(i, a, b) cin >> arr[i] #define printArr(arr) forn(i, 0, arr.size()) cout << arr[i] << " " #define printArrRange(arr, a, b) forn(i, a, b) cout << arr[i] << " " #define sz(a) a.size() #define all(ans) ans.begin(), ans.end() #define lcm(a, b) ((a * b) / __gcd(a, b)) #define gcd(a, b) (__gcd(a, b)) #define um unordered_map #define mp make_pair #define here cout << "here" << endl; #define print(ans) cout << ans #define nl cout << endl #define min_heap(T) priority_queue, greater> #define max_heap(T) priority_queue typedef pair pii; typedef pair pll; typedef vector vi; typedef vector vl; typedef vector vpii; typedef vector vpll; typedef vector vvi; typedef vector vvl; typedef vector vc; typedef vector vvc; typedef vector vs; typedef vector vvs; typedef vector vb; vb prime(1e6, true); vi primes; void sieve(ll int n) { for (ll int p = 2; p * p <= n; p++) { if (prime[p] == true) { primes.pb(p); for (ll int i = p * p; i <= n; i += p) prime[i] = false; } } } void solve() { ll int n; cin >> n; sieve(1e6); sort(all(primes)); int cnt = 0; forn(i, 0, sz(primes)) { if (n % primes[i] == 0) { cnt++; n /= primes[i]; } } if (cnt <= 2) cout << "Yes\n"; else cout << "No\n"; } int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int tc = 1; // cin >> tc; for (int t = 1; t <= tc; t++) { solve(); } }