Код:
def perevod(num, base):
newnum = ''
while num > 0:
# Получаем остаток от деления числа на основание системы счисления и добавляем его в начало строки
newnum = str(num % base) + newnum
# Делим число на основание системы счисления, используя целочисленное деление
num //= base
return newnum
a = []
for n in range(1, 10000):
# Преобразуем число n в строку в системе счисления с основанием 3
r = perevod(n, 3)
# Считаем количество символов '1' и '2' в строке
count_ones_twos = r.count('1') + r.count('2')
# Находим остаток от деления количества символов '1' и '2' на 4
remainder = count_ones_twos % 4
if remainder == 0:
# Если остаток равен нулю, добавляем символ '1' в начало строки
# и удаляем два последних символа строки
# Проверяем, что длина строки достаточна для удаления двух символов
if len(r) > 2:
r = '1' + r[:-2]
else:
continue # Пропускаем эту итерацию цикла, если строка слишком короткая
else:
# В противном случае добавляем к строке символ, соответствующий остатку
r += str(remainder)
try:
# Преобразуем строку в число с основанием 3
r = int(r, 3)
# Если получившееся число больше 353, добавляем его в список a
if r > 353:
a.append(r)
except ValueError:
continue # Пропускаем эту итерацию цикла, если строка содержит недопустимые символы
# Если список a не пустой, выводим минимальное число из списка
if a:
print(min(a))
else:
print("Нет подходящих чисел")
def perevod(num, base):
newnum = ''
while num > 0:
newnum = str(num % base) + newnum
num //= base
return newnum
a = []
for n in range(1, 10000):
r = perevod(n, 3)
if (int(r.count('1') + r.count('2'))) % 4 == 0:
r = '1' + r + r[:-2]
else:
r = r + str((((int(r.count('1') + r.count('2'))) % 4) * 3)
r = int(r, 3)
if r > 353:
a.append(r)
print(min(a))