OpenFIPI 2.0
14
2
3F4398
Значение арифметического выражения 7350 + 7150 – x, где x – целое положительное число, не превышающее 2300, записали в семеричной системе счисления. Определите наибольшее значение x, при котором в семеричной записи числа, являющегося значением данного арифметического выражения, содержится ровно 200 нулей.
В ответе запишите число в десятичной системе счисления.
2001
# Поскольку ищем наибольший Х, идем по убыванию
for x in range(2300, 0, -1):
a = 7**350 + 7**150 - x
# посчитываем количество нулей без хранения семеричной записи
k = 0
while a > 0:
if a % 7 == 0:
k += 1
a //= 7
if k == 200:
print(x)
# после первого подходящего прерываем цикл
break
for x in range(2300, 0, -1):
a = 7**350 + 7**150 - x
# храним семеричную запись в строке
s = ''
while a > 0:
s = f'{a % 7}' + s
a //= 7
if s.count('0') == 200:
print(x)
break
for x in range(2300, 0, -1):
a = 7**350 + 7**150 - x
# храним семеричную запись в списке
s = []
while a > 0:
s += [a % 7]
a //= 7
if s.count(0) == 200:
print(x)
break
Просмотреть отправленные ответы 3F4398