С клавиатуры вводятся два целых числа a и b (aВыяснить, является ли дробь a/b конечной. В таком
случае вывести слово yes, в противном - no
Ответы на вопрос
Ответил MaxLevs
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")
Приложения:

Новые вопросы
случае вывести слово yes, в противном - no.