# The important bit:

def reduce_fraction(n, d):
    f_iter = range(1, min(n, d) + 1)
    n_list = [x for x in f_iter if n % x == 0]
    d_list = [y for y in f_iter if d % y == 0]
    f_list = [f for f in n_list if f in d_list]
    gcf = max(f_list)
    return str(n//gcf) + ' ' + str(d//gcf)

# Parsing input and printing output:

def parse_input(s):
    output = []
    for line in s.splitlines():
        line = line.strip()
        if line:
            line = tuple(map(int, line.split()))
            output += [line]
    return output

def main():
    numbers = '''
        4 8
        1536 78360
        51478 5536
        46410 119340
        7673 4729
        4096 1024
        '''

    tup_list = parse_input(numbers)

    for x, y in tup_list:
        print(reduce_fraction(x, y))

if __name__ == '__main__': main()