View Code of Problem 3836


import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		long gcd = scan.nextInt();
		long lcm = scan.nextInt();
		long multi = gcd*lcm;
		long min = Long.MAX_VALUE;
		long a = 0,b = 0;
		for (long i = gcd; i <= Math.sqrt(multi); i++) {
			if (multi%i == 0&&f(multi/i,i) == gcd) {
				if (i+multi/i<min) {
					min = i+multi/i;
					a = i;
					b  = multi/i;
				}
			}
		}
		System.out.println(a+" "+b);
	}

	private static long f(long l, long i) {
		while (l%i != 0) {
			long t =  (l%i);
			l = i;
			i = t;
		}
		return i;
	}
}

Double click to view unformatted code.


Back to problem 3836