#include <stdio.h>

void getTwoInts(int* a, int* b) {
    printf("1st Int: ");
    (void)scanf("%d", a);
    printf("2nd Int: ");
    (void)scanf("%d", b);
}

void printRatio(int r[]) {
    printf("%d/%d", r[0], r[1]);
}

int gcm(int a, int b);
int lcm(int a, int b);
void reduce(int x[]);

int gcm(int a, int b) {
    int x = a, y = b;
    if (x < y) {
        x = b;
        y = a;
    }
    int r = a % b;
    if (r == 0) return b;
    return gcm(b, r);
}

int lcm(int a, int b) {
    int g = gcm(a, b);
    return b * a / g;
}

void reduce(int x[]) {
    int a = x[0], b = x[1];
    int g = gcm(a, b);
    x[0] = a / g;
    x[1] = b / g;
}

int main(void) {
    int a,b;

    getTwoInts(&a, &b);
    int g = gcm(a, b);
    int l = lcm(a, b);

    printf("Result:\ngcm = %d\nlcm = %d\n", g, l);

    int r[2] = {a, b};
    printf("Before: ");
    printRatio(r); putchar('\n');
    reduce(r);
    printf("After: ");
    printRatio(r); putchar('\n');

    return 0;
}
