Как сокращать дроби в Python: методы и примеры

Чтобы уменьшить дробь в Python, вы можете использовать несколько методов. Вот несколько подходов:

Метод 1: использование математического модуля и функции gcd

import math
def reduce_fraction(numerator, denominator):
    gcd = math.gcd(numerator, denominator)
    reduced_numerator = numerator // gcd
    reduced_denominator = denominator // gcd
    return reduced_numerator, reduced_denominator
numerator = 12
denominator = 36
reduced_numerator, reduced_denominator = reduce_fraction(numerator, denominator)
print(reduced_numerator, reduced_denominator)

Метод 2. Использование цикла для поиска наибольшего общего делителя (НОД)

def reduce_fraction(numerator, denominator):
    smaller = min(numerator, denominator)
    for i in range(2, smaller + 1):
        if numerator % i == 0 and denominator % i == 0:
            gcd = i
    reduced_numerator = numerator // gcd
    reduced_denominator = denominator // gcd
    return reduced_numerator, reduced_denominator
numerator = 12
denominator = 36
reduced_numerator, reduced_denominator = reduce_fraction(numerator, denominator)
print(reduced_numerator, reduced_denominator)

Метод 3. Использование рекурсивной функции для поиска НОД (алгоритма Евклида)

def gcd(a, b):
    if b == 0:
        return a
    return gcd(b, a % b)
def reduce_fraction(numerator, denominator):
    gcd_value = gcd(numerator, denominator)
    reduced_numerator = numerator // gcd_value
    reduced_denominator = denominator // gcd_value
    return reduced_numerator, reduced_denominator
numerator = 12
denominator = 36
reduced_numerator, reduced_denominator = reduce_fraction(numerator, denominator)
print(reduced_numerator, reduced_denominator)