View Code of Problem 3836

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;
            long min = Long.MAX_VALUE;
            long a = 0;
            long b = 0;
            for (long i = gcd; i <= Math.sqrt(multi); i++) {
                if (multi%i == 0&&gcd(multi/i,i) == gcd) {
                    if (multi/i+i<min) {
                        a = i;
                        b = multi/i;
                        min = a+b;
                    }
                }
            }

            System.out.println(a+" "+b);

        }
    }

    public static long gcd(long a, long b){
        if(a%b == 0)return b;
        return gcd(b, a%b);
    }
}

Double click to view unformatted code.


Back to problem 3836