에라토스테네스의 체를 이용해서 소수를 먼저 구해야겠다는 생각을 먼저 했는데 어디까지 구해야할지 고민하다가 N의 값 범위를 보고 알 수 있었다.
연속한 두 소수의 곱의 최댓값은 101 × 103 = 10403이므로 103이하의 소수를 구해주면 된다.
N = int(input())
prime_number = [True] * 104
prime_number[0] = False
prime_number[1] = False
for i in range(2, 104):
if prime_number[i]:
for j in range(2*i, 104, i):
prime_number[j] = False
li = []
for i in range(len(prime_number)):
if prime_number[i]:
li.append(i)
result = []
for i in range(len(li)-1):
result.append(li[i] * li[i+1])
for i in range(len(result)):
if result[i] > N:
print(result[i])
break
elif result[i] == N:
print(result[i+1])
break