Введение в теорию чисел. Python Сокращение дроби
Сокращение дроби
Дана дробь ab. Требуется её сократить, то есть записать это же число в виде cd, где c — целое число, d — натуральное число и d минимальное возможное.
Входные данные
Вводятся два целых числа a и b (–100≤a≤100, 0
from fractions import Fraction
a,b = 7, 21
print(Fraction(a, b))
==================
1/3
>>>
from math import gcd
a, b = map(int, input().split())
x = gcd(a, b)
print(a // x, b // x)
Если чё вот ссылка на pastebin
https://pastebin.com/HZNYJS50
Можно воспользоваться функцией gcd (так по английски называется нод) из библиотеки math:
from import gcd as gcd
a, b = map(int, input("a b » "))
g = gcd(a, b); c, d = a // g, b // g; print(c, d)
А можно и свою функцию написAть:
def e(x, y):
----x, y = abs(x), abs(y)
----while True:
--------z = x % y
--------if z == 0: return y
--------else: x, y = y, z
while True:
----a, b = map(int, input("a b » "). split())
----g = e(a, b); c, d = a / g, b / g; print(c, d)
P.S.(----это пробелы !)
Как справедливо было сказано выше, все уже написано до нас.
Но если твой препод требует сделать это счастье ручками, дели оба числа на их НОД до тех пор, пока НОД не станет равен 1.