Условие:
Дробь 49/98 интересна тем, что неопытный математик, пытаясь сократить ее, будет ошибочно полагать, будто 49/98 = 4/8, являющееся истиной, получено вычеркиванием девяток.
Дроби вида 30/50 = 3/5 будем считать тривиальными примерами.
Существует ровно 4 нетривиальных примера дробей подобного типа, которые меньше единицы и содержат двухзначные числа как в числителе, так и в знаменателе.
Пусть произведение этих четырех дробей дано в виде несократимой дроби (числитель и знаменатель дроби не имеют общих сомножителей). Найдите знаменатель этой дроби.
Решение:
import fractions def compute(): numer = 1 denom = 1 for d in range(10, 100): for n in range(10, d): n0 = n % 10 n1 = n // 10 d0 = d % 10 d1 = d // 10 if (n1 == d0 and n0 * d == n * d1) or (n0 == d1 and n1 * d == n * d0): numer *= n denom *= d return str(denom // fractions.gcd(numer, denom)) if __name__ == "__main__": print(compute())