def min_possible_divisors(X):
	a =1
	A=[]
	B=[]
	for i in range(2,int(X**(0.5))+1):
		if X%i == 0:
			a = i
			b = X//a
			if b%a !=0 and hcf(a,b)==1:
				A.append(a)
	if len(A)>0:
		return str(max(A)) + ' ' + str(X//max(A))	
	else:			
		return str(1)+" "+str(X)	

def hcf(a,b):
	while a>0:
		h=b%a
		b=a
		a = h
	return(b)
				

X = int(input())
print(min_possible_divisors(X))