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