


import java.io.*;

import java.util.*;
import java.math.*;

public class Main{
    public static void main(String[] args) throws IOException {

        BufferedReader bf=new BufferedReader(new InputStreamReader(System.in));
        long x=Long.parseLong(bf.readLine());
        ArrayList<Integer> al=new ArrayList();
        ArrayList<Integer> al1=new ArrayList();
        for(int i=1;i<=Math.sqrt(x)+1;i++){
        if(x%i==0){al.add(i);al1.add((int)(x/i));}
        }
        boolean key=true;
      
       for(int i=0;i<al.size();i++){
           int z=al1.get(i);
           int m=al.get(al.size()-i-1);
           HashMap hm=new HashMap();
             HashMap hm1=new HashMap();
                ArrayList<Integer> a2=new ArrayList();
                ArrayList<Integer> a3=new ArrayList();
          for(int k=1;k<=Math.sqrt(m)+1;k++){
         if(m%k==0){hm.put(k,0);hm.put((int)(m/k),0);a2.add(k);a2.add((int)(x/k));}
        }
           for(int k=1;k<=Math.sqrt(z)+1;k++){
         if(z%k==0){hm1.put(k,0);hm1.put((int)(z/k),0);a3.add(k);a3.add((int)(x/k));}
        }
           boolean key1=true;
           for(int k=0;k<a2.size();k++){
               if(hm.containsKey(a2.get(k))&&hm1.containsKey(a2.get(k))&&a2.get(k)!=1){key1=false;break;}
           }
       if(al1.get(i)%al.get(al.size()-i-1)!=0&&((al1.get(al.size()-i-1)*2)==x)&&key1){System.out.println(al.get(i)+" "+al1.get(al.size()-i-1));key=false;}
       }
      if(key){System.out.println("1 "+x);}
    }
    
}
