N = int(input()) def eratosthenes_sieve(n): if n < 2: return [] is_primes = [True] * (n + 1) for x in range(2, int(n ** 0.5 + 1) + 1): if is_primes[x]: for mx in range(2 * x, n + 1, x): is_primes[mx] = False return [i for i in range(2, n + 1) if is_primes[i]] def is_prime(n): for x in range(2, int(n ** 0.5) + 1): if n % x == 0: return False return True Primes = set(eratosthenes_sieve(int(N ** 0.5) + 2)) Primes.add(1) for p in Primes: if (N % p == 0) and is_prime(N // p): print('NO') exit() else: print('YES')