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