Наибольший общий делитель двух натуральных чисел – наибольшее число, на которое делятся данные числа. Наименьшее общее кратное двух натуральных чисел – наименьшее число, которое делится на данные числа. На вход программы поступают 2 целых положительных числа. Необходимо найти их наибольший общий делитель и наименьшее общее кратное.
Описание входных и выходных данных
В двух строках по одному записаны натуральные числа, не превосходящие 100000000.
В качестве результата программа должна напечатать через пробел наибольший общий делитель и наименьшее общее кратное данных чисел.
Пример входных данных:
12
16
Пример выходных данных для приведённого выше примера входных данных:
4 48
Требуется написать эффективную по времени и памяти программу. Перед текстом программы обязательно опишите алгоритм решения. Укажите использованный язык программирования и его версию.