#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
#define BA ios::sync_with_stdio(false);cin.tie(0);
#define f first
#define s second
#define pb push_back
#define mp make_pair
#define read freopen("input.txt","r",stdin) ;
#define write freopen("output.txt","w",stdout) ;
map<ll,ll> factors(ll n)
{
map<ll,ll> m;
for(ll i=2;i*i<=n;i++)
{
while(n%i==0)
{
m[i]++;
n/=i;
}
}
if(n>1)
m[n]++;
return(m);
}
bool prime(ll n)
{
bool b;
if(n<2)
b=false;
else
b=true;
for(ll i=2;b&&i*i<=n;i++)
if(n%i==0)
b=false;
return(b);
}
int main() {
BA;
ll t=1 ;
//cin>>t;
while(t--)
{
ll x,a=1,b;
cin>>x;
b=x;
for(ll i=1;i*i<=x;i++)
{
if(x%i==0&&__gcd(i,x/i)==1)
{
if(max(i,x/i)<=max(a,b))
{
a=i;
b=x/i;
}
}
}
cout<<a<<' '<<b<<endl;
}
return 0;
}
969. Pancake Sorting | 967. Numbers With Same Consecutive Differences |
957. Prison Cells After N Days | 946. Validate Stack Sequences |
921. Minimum Add to Make Parentheses Valid | 881. Boats to Save People |
497. Random Point in Non-overlapping Rectangles | 528. Random Pick with Weight |
470. Implement Rand10() Using Rand7() | 866. Prime Palindrome |
1516A - Tit for Tat | 622. Design Circular Queue |
814. Binary Tree Pruning | 791. Custom Sort String |
787. Cheapest Flights Within K Stops | 779. K-th Symbol in Grammar |
701. Insert into a Binary Search Tree | 429. N-ary Tree Level Order Traversal |
739. Daily Temperatures | 647. Palindromic Substrings |
583. Delete Operation for Two Strings | 518. Coin Change 2 |
516. Longest Palindromic Subsequence | 468. Validate IP Address |
450. Delete Node in a BST | 445. Add Two Numbers II |
442. Find All Duplicates in an Array | 437. Path Sum III |
436. Find Right Interval | 435. Non-overlapping Intervals |