'''
n=int(input())
for i in range(1,n+1):
if n%i==0: print(i)
'''
n=int(input())
z=[]
for i in range(1,n+1):
if n%i==0: z.append(i)
if len(z)%2!=0: print(z[len(z)//2],z[len(z)//2])
else: print(z[(len(z)//2)-1],z[len(z)//2])
#include<bits/stdc++.h>
using namespace std;
int main()
{
long long n;
cin>>n;
int k;
k=sqrt(n);
for(int i=k ;i>0;i--){
if(n%i==0 && n/i<i){
cout<<n/i<<" "<<i;
return 0;
}
else if(n%i==0 && n/i>=i){
cout<<i<<" "<<n/i;
return 0;
}
}
}
1676G - White-Black Balanced Subtrees | 1716D - Chip Move |
1352F - Binary String Reconstruction | 1487B - Cat Cycle |
1679C - Rooks Defenders | 56A - Bar |
1694B - Paranoid String | 35A - Shell Game |
1684A - Digit Minimization | 43B - Letter |
1017A - The Rank | 1698B - Rising Sand |
235A - LCM Challenge | 1075B - Taxi drivers and Lyft |
1562A - The Miracle and the Sleeper | 1216A - Prefixes |
1490C - Sum of Cubes | 868A - Bark to Unlock |
873B - Balanced Substring | 1401D - Maximum Distributed Tree |
1716C - Robot in a Hallway | 1688B - Patchouli's Magical Talisman |
99A - Help Far Away Kingdom | 622B - The Time |
1688C - Manipulating History | 1169D - Good Triple |
1675B - Make It Increasing | 588A - Duff and Meat |
1541B - Pleasant Pairs | 1626B - Minor Reduction |