import sys; input = sys.stdin.buffer.readline sys.setrecursionlimit(10**7) from collections import defaultdict con = 10 ** 9 + 7; INF = float("inf") def getlist(): return list(map(int, input().split())) def divisor(N): divisor_list = [] n = int((N ** 0.5) // 1) for i in range(1, n): if N % i == 0: divisor_list.append(i) divisor_list.append(int(N // i)) if n ** 2 == N: divisor_list.append(n) else: if N % n == 0: divisor_list.append(n) divisor_list.append(int(N // n)) return sorted(divisor_list) #処理内容 def main(): N = int(input()) div = divisor(N) ans = N for i in div: if i > 2: ans = min(ans, i) print(ans) if __name__ == '__main__': main()