Сумма чётных до N

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

Условие

Сумма чётных до N

Сложи все чётные числа от \(1\) до \(n\). Например, для \(n=5\) это \(2+4=6\).

Входные данные

Одно целое число \(n\) (\(1 \le n \le 10^6\)).

Выходные данные

Одно число — сумма чётных от 1 до n.

Пример

Вход:

5

Выход:

6

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

Приём: Арифметическая прогрессия (формула вместо цикла)

Ключевое наблюдение: все чётные числа до n выглядят как 2, 4, 6, ..., 2k, где k = n // 2 (столько чётных помещается в диапазон 1..n).

Дальше задача сводится к сумме первых k натуральных чисел. Потому что 2 + 4 + ... + 2k = 2*(1 + 2 + ... + k). А сумма 1 + 2 + ... + k известна: k*(k+1)/2. После умножения на 2 дроби исчезают, получаем очень простую формулу.

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

Мини-сниппет формулы:

Почему это лучше цикла: работает за O(1) по времени и O(1) по памяти, не зависит от размера n.

Частая ошибка: пытаться считать ans = (2 + 2k) * k / 2 и получить нецелое из-за /. В Python используй целочисленную формулу k*(k+1) (или // при делении), чтобы не уйти во float.

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

Куда дальше