View Code of Problem 3836

import java.util.Scanner;
public class Main {
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		while(scanner.hasNext()) {
			long x = scanner.nextLong();
			long y = scanner.nextLong();
			long cheng = x*y;
			long s=(long)Math.sqrt(cheng);
			long min = Long.MAX_VALUE;
			long a =0;
			long b =0;
			for(long i=x; i<=s; i++) {
				if((cheng % i == 0) && yinshu(i,cheng / i) == x) {
					long p = i+cheng/i;
					if(min>p) {
						min=p;
						b=cheng/i;
						a=i;
					}
				}
			}
			System.out.println(a+" "+b);
		}
	}
 
	public  static long yinshu(long a, long b) {
		long c = a % b;
		while(c != 0) {
			a = b; 
			b = c;
			c = a % b;
		}
		return b;
	}
	
}

Double click to view unformatted code.


Back to problem 3836