Сократить дробь - 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 (наибольший общий делитель), соответственно. Список элементов кода:

  1. def reduce_fraction(n,m): - определение функции с двумя позиционными аргументами
  2. k = math.gcd(n,m) - инициализация переменной k результатом вызова функции math.gcd(n,m)
  3. 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)

Оцени полезность:

14   голосов , оценка 4.071 из 5
Похожие ответы