import sys import math def is_prime(n): if n < 2: return False for p in [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37]: if n % p == 0: return n == p d = n - 1 s = 0 while d % 2 == 0: d //= 2 s += 1 for a in [2, 325, 9375, 28178, 450775, 9780504, 1795265022]: if a >= n: break x = pow(a, d, n) if x == 1 or x == n - 1: continue for _ in range(s - 1): x = pow(x, 2, n) if x == n - 1: break else: return False return True def find_factor(n): if n % 2 == 0: return 2 max_i = int(math.isqrt(n)) + 1 i = 3 while i <= max_i: if n % i == 0: return i i += 2 return n # This line is theoretically unreachable since n is composite def main(): N_input = sys.stdin.read().strip() N = int(N_input) if N == 1: print("NO") return if is_prime(N): print("NO") return p = find_factor(N) e = 0 m = N while m % p == 0: m //= p e += 1 if m == 1: if e >= 3: print("YES") else: print("NO") else: if is_prime(m): if m != p: print("YES") else: total_e = e + 1 if total_e >= 3: print("YES") else: print("NO") else: print("YES") if __name__ == "__main__": main()