Задача #2888

Алгоритмы

Уровень ЕГЭ

(О. Лысенков) На вход программы подаётся натуральное число N. Программа преобразует это число в новое число R следующим образом:
1. Строится семеричная запись числа N.
2. Далее эта запись обрабатывается согласно следующему алгоритму:
а.Если N чётное, то справа дописывается 1, а слева 52.
б.Если N нечётное, то первая и последняя цифра в числе меняются местами, после справа дописывается 15.

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

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

Ответ

721
def perevod(n):
s = ''
while n != 0:
s = str(n % 7) + s
n //= 7
return s
def f(n):
s = perevod(n)
if n % 2 == 0:
s = '52' + s + '1'
else:
if len(s) == 1:
s = s + '15'
else:
s = s[-1] + s[1:-1] + s[0] + '15'
return perevod(int(s,7)) #избавляемся от незначащих нулей
for i in range(1,1001):
if len(f(i)) == 4:
print(i)
Быстрый переход
Перейти к задаче