Вопрос задан 04.07.2023 в 15:04. Предмет Информатика. Спрашивает Казарян Гуго.

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

случае вывести слово yes, в противном - no
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Буднюк Антон.

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")

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Дробь a/b является конечной, если и только если знаменатель b является степенью простого числа 2 или 5 (или их комбинации), так как в десятичной системе счисления только эти дроби имеют конечное представление.

Для проверки этого условия, вам нужно проверить, делится ли знаменатель b только на простые числа 2 и 5. Если да, то дробь конечна, иначе она будет бесконечной.

Пример кода на Python:

python
def is_finite_fraction(a, b): while b % 2 == 0: b //= 2 while b % 5 == 0: b //= 5 return b == 1 a = int(input("Введите числитель a: ")) b = int(input("Введите знаменатель b: ")) if is_finite_fraction(a, b): print("yes") else: print("no")

Этот код проверяет, является ли дробь a/b конечной, и выводит соответствующее сообщение "yes" или "no".

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос