//কী পেয়েছো তুমি, কী চেয়েছিলে তুমি.? হিসেবটা তোমার বড়ই গড়মিল...!!//
#include <bits/stdc++.h>
#include <math.h>
using namespace std;
int dx[] = {1, 1, 0, -1, -1, -1, 0, 1};
int dy[] = {0, 1, 1, 1, 0, -1, -1, -1};
string ch="abcdefghijklmnopqrstuvwxyz";
vector<string>v;
typedef long long ll;
//vector<int>createarray(string s)
//{
//    vector<int>lps(s.size());
//    int index=0;
//    for(int i=1;i<s.size();){
//        if(s[index]==s[i]){
//            lps[i]=index+1;
//            index++;
//            i++;
//        }
//        else{
//            if(index!=0)index=lps[index-1];
//            else{
//                lps[index]=index;
//                i++;
//            }
//        }
//    }
//    return lps;
//}
//int kmp(string text,string pattern){
//    vector<int>lps=createarray(pattern);
//    int i=0;int j=0;
//    int cnt=0;
//    while(i<text.size()){
//        if(text[i]==pattern[j]){
//            i++;
//            j++;
//        }
//        else{
//            if(j!=0){
//                j=lps[j-1];
//            }
//            else{
//                i++;
//            }
//        }
//        if(j==pattern.size()){
//            cnt++;
//            j=lps[j-1];
//        }
//    }
//    return cnt;
//}
//void printAllKLengthRec(string s, string prefix, int n, int k)
//{
//    if (k == 0)
//    {
//        v.push_back(prefix);
//        return;
//    }
//    for (int i = 0; i < n; i++)
//    {
//        string newPrefix;
//        newPrefix = prefix + s[i];
//        printAllKLengthRec(s, newPrefix, n, k - 1);
//    }
//
//}
//
//void printAllKLength(string s, int k,int n)
//{
//    printAllKLengthRec(s, "", n, k);
//}
int main()
{
    ll n;
    cin>>n;
    for(ll i=sqrt(n);i>=1;i--){
        if(n%i==0){
            if(i*i!=n){
                if((i&1)&&((n/i)%2==0)||((i%2==0)&&((n/i)&1))){
                    cout<<i<<" "<<n/i<<endl;
                    return 0;
                }
                if(i&1 && ((n/i)&1)){
                    if(__gcd(i,n/i)==1){
                        cout<<i<<" "<<n/i<<endl;
                        return 0;
                    }
                }
            }
        }
    }
    cout<<1<<" "<<n<<endl;
}

