Задача #2887

Алгоритмы

Уровень ЕГЭ

(О. Лысенков) На вход программы подаётся натуральное число N.vПрограмма преобразует это число в новое число R следующим образом:

1.Строится пятеричная запись числа N.

2.Далее эта запись обрабатывается согласно следующему алгоритму:

а. Если N чётное, то справа дописывается значение младшего разряда пятеричной записи, увеличенное в 3 раза и записанное в пятеричной системе счисления.

б. Если N нечётное, то первая и последняя цифра в числе меняются местами, после справа дописывается 1.

3. Из записи удаляются незначащие нули.

Укажите минимальное число N, после обработки которого с помощью этого алгоритма получается число R, содержащее ровно 4 значащих нуля в пятеричной записи.

Ответ
Войдите, чтобы история ответов и статистика сохранялись.
Решение Нажми, чтобы открыть

Ответ

250
def perevod(n):
if n == 0:
return '0'
s = ''
while n != 0:
s = str(n % 5) + s
n //= 5
return s
def f(n):
s = perevod(n)
if n % 2 == 0:
s = s + perevod(int(s[-1],5) * 3)
else:
if len(s) == 1:
s = s
else:
s = s[-1] + s[1:-1] + s[0]
s += '1'
return perevod(int(s,5)) #избавляемся от незначащих нулей

for i in range(1,10000):
if f(i).count('0') == 4:
print(i)
break
Быстрый переход
Перейти к задаче