from math import sqrt def Question(x): print(f'? {x}') return int(input()) def Answer(x): print(f'! {x}') exit() def Operator1(x): S = [] for i in range(2,int(sqrt(x))+1): while x % i == 0: S.append(i) x //= i if x >= 2: S.append(x) for bit in range(1<>= 1 P[z] = 0 def Operator2(x): M = x S = [] for i in range(2,int(sqrt(x))+1): while x % i == 0: S.append(i) x //= i if x >= 2: S.append(x) T = [] for bit in range(1<>= 1 T.append(z) for i in range(1,M+1): if not i in T: P[i] = 0 N = int(input()) P = [1] * (N+1) for i in range(N,0,-1): if P[i]: if Question(i) == 1: Operator1(i) else: Operator2(i) for i in range(N,0,-1): if P[i]: if Question(i) == i: Answer(i) Answer(1)