def is_prime(n): if n <= 1: return False elif n <= 3: return True elif n % 2 == 0: return False d = n - 1 s = 0 while d % 2 == 0: d //= 2 s += 1 bases = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37] for a in bases: if a >= n: continue 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 is_perfect_number(N): if N % 2 != 0: return False k = 0 M = N while M % 2 == 0: M //= 2 k += 1 if M == 1: return False # Sum of divisors is 2^(k+1)-1 < 2N temp = M + 1 if (temp & (temp - 1)) != 0: return False # temp is not a power of two p = temp.bit_length() - 1 if p != k + 1: return False return is_prime(M) N = int(input()) if is_perfect_number(N): print("Yes") else: print("No")