import sys input = sys.stdin.readline import collections #from bisect import * def linput(_t=int): return list(map(_t, input().split())) def gcd(n,m): while m: n,m = m, n%m return n def lcm(n,m): return n*m//gcd(n,m) def prime_factorize(n): r = [] rapp = r.append while n%2<1: rapp(2); n//=2 f = 3 while f*f<=n: if n%f<1: rapp(f); n//=f else: f+=2 if n != 1: rapp(n) return r def main(): N = int(input()) #N,P,C,M = linput() #res = 0 cc = collections.Counter(prime_factorize(N)) res = 1 for p,c in cc.items(): res *= p**(c//2) print(res, N//(res**2)) #print("{:.5f}".format(res/R)) main()