Top.Mail.Ru
Ответы

Введение в теорию чисел. 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.