Призовые шарики

тема: Основы · уровень: средний

Условие

У Пети есть коробка с шариками. На каждом шарике написан номер.

Петя придумал правило: призовой шарик — это такой, чей номер делится на 3 без остатка.

Но часть шариков старая: номер мог стереться и стать нулём или даже отрицательным (Петя переписал его с ошибкой). Правило всё равно то же самое: если число делится на 3 без остатка — шарик призовой.

Нужно узнать, сколько призовых шариков лежит в коробке.

Формат ввода

В первой строке дано целое число n — сколько шариков в коробке. Во второй строке (или на нескольких строках) даны n целых чисел a1, a2, ..., an — номера шариков.

Формат вывода

Выведите одно число — сколько номеров делится на 3 без остатка.

Ограничения

Пример

Ввод:

5
3 1 6 8 9

Вывод:

3

(Призовые номера: 3, 6, 9.)

Как решать — идея подхода

Приём: Подсчёт по условию (остаток от деления)

Ключевое наблюдение: «делится на 3 без остатка» означает, что остаток от деления на 3 равен 0. Это удобно проверять оператором %.

Почему это работает: нам не нужно ничего сортировать или хранить сложные структуры — ответ равен количеству элементов, удовлетворяющих простому условию. Достаточно один раз пройти по списку.

План решения:

Мини-сниппет проверки:

Сложность: O(n) по времени и O(1) по памяти (кроме хранения ввода, если вы его сохраняете).

Частая ошибка: забыть, что числа могут быть отрицательными, и пытаться «исправлять» остаток вручную. В Python проверка x % 3 == 0 корректно работает и для отрицательных, и для нуля.

Решить задачу с автопроверкой на Python →

Куда дальше