Advertisement
genium08

Convert 10 based fraction to base 6

Nov 26th, 2024
53
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.52 KB | None | 0 0
  1. Написать программу, переводящую дробную часть числа в 6-ую систему счисления с определением периода.
  2. def convert_fraction_to_base_6(numerator, denominator):
  3.     int_part = numerator // denominator
  4.     remainder = numerator % denominator
  5.     # Если остаток равен 0, то дробная часть отсутствует
  6.     if remainder == 0:
  7.         return f"{int_part}.0"
  8.     # Инициализируем список для хранения остатков и результат
  9.     remainders = []
  10.     fraction_part = ""
  11.     # Пока остаток не равен 0 и не встретился повторяющийся остаток
  12.     while remainder != 0 and remainder not in remainders:
  13.         remainders.append(remainder)
  14.         remainder *= 6
  15.         fraction_part += str(remainder // denominator)
  16.         remainder %= denominator
  17.     # Если остаток стал равен 0, то дробная часть конечна
  18.     if remainder == 0:
  19.         return f"{int_part}.{fraction_part}"
  20.     # Иначе найден период
  21.     period_start = remainders.index(remainder)
  22.     non_repeating = fraction_part[:period_start]
  23.     repeating = fraction_part[period_start:]
  24.     return f"{int_part}.{non_repeating}({repeating})"
  25.  
  26.  
  27. m, n = int(input("Введите числитель дроби: ")), int(input("Введите знаменатель дроби: "))
  28. print(convert_fraction_to_base_6(m, n))
  29.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement