Сократить дробь - Python
Формулировка задачи:
Даны два натуральных числа n и m.
Сократите дробь (n / m), то есть выведите два других числа p и q таких, что (n / m) = (p / q) и дробь (p / q) — несократимая.
Решение оформите в виде функции ReduceFraction(n, m), получающая значения n и m и возвращающей кортеж из двух чисел (return p, q).
Формат ввода1
Вводятся два натуральных числа.
Формат вывода
Выведите ответ на задачу.
Тест 1
Входные данные:
12
16
Вывод программы:
3 4
Тест 2
Входные данные:
7
9
Вывод программы:
7 9
Тест 3
Входные данные:
10
100
Вывод программы:
1 10
Решение задачи: «Сократить дробь»
textual
Листинг программы
def reduce_fraction(n,m): k = math.gcd(n,m) return (n//k, m//k)
Объяснение кода листинга программы
В данном коде функция reduce_fraction(n,m) принимает два целых числа n и m в качестве аргументов и сокращает дробь n/m, используя алгоритм нахождения наибольшего общего делителя (НОД) чисел n и m с помощью функции math.gcd(n,m). Затем функция возвращает кортеж (n//k, m//k), где n//k и m//k - это результаты деления n и m на k (наибольший общий делитель), соответственно. Список элементов кода:
- def reduce_fraction(n,m): - определение функции с двумя позиционными аргументами
- k = math.gcd(n,m) - инициализация переменной k результатом вызова функции math.gcd(n,m)
- return (n//k, m//k) - возврат кортежа с результатами деления n и m на k Пример использования функции: print(reduce_fraction(12, 6)) # выведет (2, 1) print(reduce_fraction(24, 18)) # выведет (3, 2) print(reduce_fraction(30, 15)) # выведет (2, 1)