#include <stdio.h> #include <math.h> long long int gcd(long long int x, long long int y) { if (y == 0) { return x; } return gcd(y, x%y); } int main() { long long int m, n; while (scanf("%lld %lld", &m, &n) != EOF) { if (m > n) { long long int temp = m; m = n; n = temp; } long long int k = n / m; long long int a = 0, b = 0, min = 99999999, sum = 0; for (int i = 1;i <= sqrt(k);i++) { long long int x = k / i; if (x*i == k && gcd(x, i) == 1) { sum = i + x; if (min > sum) { a = i * m; b = x * m; min = sum; } } } printf("%lld %lld\n", a, b); } } |
Double click to view unformatted code.