def make_divisors(n): lower_divisors , upper_divisors = [], [] i = 1 while i*i <= n: if n % i == 0: lower_divisors.append(i) if i != n // i: upper_divisors.append(n//i) i += 1 return lower_divisors + upper_divisors[::-1] AA = [1 for i in range(2*10**5 + 1)] BB = [0 for i in range(2*10**5 + 1)] N = int(input()) P = [] for _ in range(N): a,b = map(int,input().split()) P.append((a*b,a,b)) P.sort() ans = 0 for c,a,b in P: D = make_divisors(a) for d in D: res = d * BB[d] // a ans = max(ans,res) if BB[d] * a < AA[d] * b: AA[d],BB[d] = a,b print(ans)