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 "нет таких")
Разбор:
digit_sum(x) — сумма цифр. str(abs(x)) чтобы работать с отрицательными.
with open(...) — безопасное открытие файла (автоматически закроет).
for line in f: — построчное чтение, не загружая весь файл в память.
line.strip() убирает пробелы и \n.
int(...) преобразует строку в число.
Ключевая идиома ЕГЭ-26: обрабатывать поток данных в один проход, поддерживая нужные счётчики/экстремумы.
Пример: число 49 → сумма цифр 4+9=13, не кратно 7. Число 16 → 1+6=7, кратно 7.