N = 10010 isprime = [True] * N isprime[0] = isprime[1] = False for i in range(2, int(N ** 0.5 + 1)): if not isprime[i]: continue for j in range(i * i, N, i): isprime[j] = False n = int(input()) primes = [] for i in range(2, n + 1): if isprime[i]: primes.append(i) l = len(primes) ans = 1 for i in range(0, l, 3): y = 1 for j in range(i, i + 3): if j == l: break z = primes[j] while z * primes[j] <= n: z *= primes[j] y *= z print("?", y, flush=True) ans *= int(input()) print("!", ans)