С клавиатуры вводятся два целых числа a и b (aВыяснить, является ли дробь a/b конечной. В таком
случае вывести слово yes, в противном - no


IbcIbc1979: С клавиатуры вводятся два целых числа a и b (aВыяснить, является ли дробь a/b конечной. В таком
случае вывести слово yes, в противном - no.
IbcIbc1979: Это послное условие

Ответы

Ответ дал: 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")
Приложения:

IbcIbc1979: Огромное вам спасибо!
Вас заинтересует