Предмет: Информатика,
автор: IbcIbc1979
С клавиатуры вводятся два целых числа a и b (aВыяснить, является ли дробь a/b конечной. В таком
случае вывести слово yes, в противном - no
Ответы
Автор ответа:
2
Python 3.8.3
Код:
- from math import gcd
- def reduce(a, b):
- k = gcd(a, b)
- return a // k, b // k
- def take2s(b: int) -> int:
- return b if b % 2 != 0 else take2s(b // 2)
- def take5s(b: int) -> int:
- return b if b % 5 != 0 else take5s(b // 5)
- def take10s(b: int) -> int:
- return take5s(take2s(b))
- def isFinie(b: int) -> bool:
- return take10s(b) == 1
- a, b = int(input()), int(input())
- a, b = reduce(a, b)
- print("yes" if isFinie(b) else "no")
Приложения:
Похожие вопросы
Предмет: Другие предметы,
автор: ivansulii
Предмет: Другие предметы,
автор: vanyapritykin
Предмет: Українська мова,
автор: cherepnya
Предмет: Математика,
автор: есения333333
Предмет: Химия,
автор: firsova20011
случае вывести слово yes, в противном - no.