Помогите с задачей

ervbriob

Новичок
Пользователь
Июн 26, 2024
2
0
1
Значение арифметического выражения 7100 – х, где х – целое положительное число, превышающее 5000, записали в системе счисления с основанием 7. Определите наименьшее значение х, при котором в семеричной записи числа, являющегося значением данного арифметического выражения, содержится ровно пять нулей. В ответе запишите число в десятичной системе счисления.
Ответ 16807, а у меня выводит список чисел(причем там есть 16806, но не 16807), даже если range делать небольшим, я так понимаю, что проблема именно в первой строке, но не знаю как правильно исправить
Python:
for x in range(5000, 100000):
    a=7**100 - x
    s='0'
    while a>0:
        s = str(a%7) + s
        a//=7
    if s.count('0')==5:
        print(x)
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 622
469
83
в s присвоили лишнюю строку с нулем, и break забыли в конце

Python:
for x in range(5000, 100000):
    a = 7 ** 100 - x
    s = ''
    while a > 0:
        s = str(a % 7) + s
        a //= 7
    if s.count('0') == 5:
        print(x)
        break
 
  • Мне нравится
Реакции: ervbriob

ervbriob

Новичок
Пользователь
Июн 26, 2024
2
0
1
в s присвоили лишнюю строку с нулем, и break забыли в конце

Python:
for x in range(5000, 100000):
    a = 7 ** 100 - x
    s = ''
    while a > 0:
        s = str(a % 7) + s
        a //= 7
    if s.count('0') == 5:
        print(x)
        break
Да, я увидел свою ошибку, надо быть повнимательнее) Спасибо!
 

Форум IT Специалистов