Если вы, смотря 16 задание, закрываете сайт, на котором готовитесь к ОГЭ по информатике, вам стоит прочитать эту статью. Кстати, вам будет полезно, даже если вы хотите структурировать свои знания. Чтобы понять эту статью, вы должны знать: циклы while и for, условные операторы if, elif, else, базовые команды, базовая работа с переменными и типами данных на Python.

По сути, есть 2 типа 16-х заданий: На цикл for и на цикл while. Кстати, цикл for вполне заменяем циклом while, но это мы сегодня затрагивать не будем.

Задания на цикл for.

Нам удобнее использовать цикл for, когда наша программа получает кол-во ведённых данных. Чаще всего, используется такая фраза:

Программа получает на вход количество чисел в последовательности, а затем сами числа.

Наша задача получить кол-во чисел, именно столько раз будет повторяться наш цикл for. Разберём на примере:

Напишите программу, которая в последовательности натуральных чисел определяет максимальное число, кратное 5. Программа получает на вход количество чисел в последовательности, а затем сами числа. В последовательности всегда имеется число, кратное 5. Количество чисел не превышает 1000. Введенные числа не превышают 30 000. Программа должна вывести одно число  — максимальное число, кратное 5.

num_of_num = int(input())                  # Мы получаем кол-во чисел
comparison = 0                             # Эта переменная нам понадобится для сравнения чисел
for i in range(num_of_num):                # Создаём цикл
    num = int(input())                     # Получем наши числа
    if num % 5 == 0:                       # Проверяем делимость на 5, так как числа должны быть кратны 
        comparison = max(comparison, num)  # Выбор максимального числа из прошлого и нового
print(comparison)                          # Вывод ответа

Переменная для сравнения равна нулю, чтобы первое же число, которое кратно 5, стало максимальным. Если бы было бы минимальное число, то наша переменная имела бы максимально возможное число + 1, чтобы первое же число, подходящие условием стало минимальным.

И похожую структуру будут иметь и все остальные задачи. может меняться начинка цикла, но основная идея остаётся неизменной. Получаем кол-во чисел и делаем цикл, который повторится именно столько раз, сколько у нас чисел.

Рассмотрим ещё одну задачу:

Напишите программу для решения следующей задачи. Камера наблюдения регистрирует в автоматическом режиме скорость проезжающих мимо нее автомобилей, округляя значения скорости до целых чисел. Необходимо определить максимальную зарегистрированную скорость автомобиля. Если скорость хотя бы одного автомобиля была меньше 30 км/ч, выведите «YES», иначе выведите «NO».

Программа получает на вход число проехавших автомобилей N (1 < N < 30), затем указываются их скорости. Значение скорости не может быть меньше 1 и больше 300. Программа должна сначала вывести максимальную скорость, затем YES или NO.

Выглядит гораздо страшнее, но структура абсолютно такая же:

num_of_auto = int(input())                   # Мы получаем кол-во чисел
comparison = 0                               # Эта переменная нам понадобится для сравнения скоростей
check = False                                # Для проверки, будет ли скорость меньше 30
for i in range(num_of_auto):                 # Создаём цикл
    speed = int(input())                     # Получаем скорости
    if speed < 30:                           # Проверяем, будет YES или NO
        check = True
    comparison = max(comparison, speed)      # Находим максимальную скорость
if check == True:                            # Выводем ответ в зависимости от скоростей
    print(comparison)
    print("YES")
else:
    print(comparison)
    print("NO")

Код не самый упрощённый и его можно упростить, но идея здесь такая же. Получаем кол-во чисел и делаем цикл.

Задания на цикл while.

Этот цикл нам удобно использовать, когда кол-во введённых данных неизвестно. Пример:

Напишите программу, которая в последовательности натуральных чисел определяет количество всех четных чисел, кратных 5. Программа получает на вход натуральные числа, количество введенных чисел неизвестно, последовательность чисел заканчивается числом 0 (0  — признак окончания ввода, не входит в последовательность). Количество чисел не превышает 1000. Введенные числа не превышают 30 000. Программа должна вывести одно число: количество всех четных чисел, кратных 5.

num_of_num = 0                          # Кол-во чисел, котоые делятся и на 2, и на 5
while True:                             # Создаём цикл
    num = int(input())                  # Получаем числа
    if num == 0:                        # Если ноль, то последовательность заканичвается и мы прекращаем цикл
      break
    else:
      if num % 2 == 0 and num % 5 == 0:   # Проверяем чётность и делимость на 5
          num_of_num += 1                 # Если подходит, то увеличиваем кол-во чисел на 1
print(num_of_num)                       # Выводим ответ

Код имеет лишние элементы, но я старался написать его максимально для понимания алгоритма. Последовательность в таких задачах кончается 0, так что если мы получаем 0, то прекращаем цикл. важно это написать до проверки на четность и делимость на 5, чтобы ответ был истинным. Структуру while True и прекращаем, если 0. Рассмотрим задачу посложнее:

Напишите программу, которая в последовательности целых чисел определяет количество нечетных чисел, кратных 3. Программа получает на вход целые числа, количество введенных чисел неизвестно, последовательность чисел заканчивается числом 0 (0  — признак окончания ввода, не входит в последовательность). Количество чисел не превышает 1000. Введенные числа по модулю не превышают 30 000. Программа должна вывести два числа: длину последовательности (завершающий 0 не учитывается) и количество нечетных чисел, кратных 3.

sequence_length = 0                           # Переменная для определения длины последовательност
num_of_num = 0                                # Перменная для определения кол-ва чисел кратных 3 и кратнхы 2
while True:                                   # Создаём цикл
    num = int(input())                        # Получаем числа
    if num == 0:                              # Проверяем на ноль
        break                                 # Если 0, то завершаем
    else:                                     # Если нет
        sequence_length += 1                  # Плюс к кол-ву чисел в последовательности
        if num % 2 == 1 and num % 3 == 0:     # Проверяем на четность и делимость на 3
            num_of_num += 1                   # Если да, то увеличиваем кол-во подходящих чисел
print(sequence_length)                        # Выводим ответы
print(num_of_num)

Код также для понимания, его можно упростить, но это не сделает его сильно короче, он и без этого получился не длинный. Можем заметить здесь такую же структуру, как и в прошлой задаче.

Надеюсь, что эта статья помогла разобраться вам в 16 задаче и вы получите ту оценку, которая вам нужна на ОГЭ. Советую порешать ещё 16-х заданий, чтобы вы привыкли. Я брал задачи с решу ОГЭ, но про этот сайт ходит не самая лучшая репутация, из-за не актуальных задач, но структура решения задач будет такой же. Удачи на экзаменах!