import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); while (scan.hasNext()) { long gcd = scan.nextLong(); long lcm = scan.nextLong(); long multi = gcd*lcm; boolean flag = true; long min = Long.MAX_VALUE; long a = 0; long b = 0; for (long i = gcd; i <= Math.sqrt(multi); i++) { if (multi%i == 0&&f(multi/i,i) == gcd) { flag = false; if (multi/i+i<min) { a = i; b = multi/i; min = a+b; } } } if (flag&&gcd == lcm) { System.out.println(gcd+" "+lcm); }else { System.out.println(a+" "+b); } } } private static long f(long l, long i) { while (l%i != 0) { long tmp = l%i; l = i; i = tmp; } return i; } } |
Double click to view unformatted code.