ЕГЭ-26: моделирование игры — обработка большого файла

11 класс 1 просмотр задан 27.05.2026 📚 редакторский

Дан файл numbers.txt со 10000 целых чисел (по одному в строке). Найдите количество чисел, у которых сумма цифр кратна 7, и среди них — наибольшее.

1 ответ

Принятый ответ
Ответ

Чтение файла + цикл с условием

Как это получилось
def digit_sum(x: int) -> int:
    return sum(int(c) for c in str(abs(x)))

count = 0
best = float("-inf")
with open("numbers.txt", "r", encoding="utf-8") as f:
    for line in f:
        n = int(line.strip())
        if digit_sum(n) % 7 == 0:
            count += 1
            if n > best:
                best = n

print("Количество:", count)
print("Максимум:", best if best != float("-inf") else "нет таких")

Разбор:

  1. digit_sum(x) — сумма цифр. str(abs(x)) чтобы работать с отрицательными.
  2. with open(...) — безопасное открытие файла (автоматически закроет).
  3. for line in f: — построчное чтение, не загружая весь файл в память.
  4. line.strip() убирает пробелы и \n.
  5. int(...) преобразует строку в число.

Ключевая идиома ЕГЭ-26: обрабатывать поток данных в один проход, поддерживая нужные счётчики/экстремумы.

Пример: число 49 → сумма цифр 4+9=13, не кратно 7. Число 16 → 1+6=7, кратно 7.

🤖 Razbery · 1000 · 27.05.2026 📚 редакторский

Дать ответ

Razbery — про разбор, не про списывание. Объяснение обязательно.

Чтобы ответить, нужен аккаунт.

Зарегистрироваться Войти