Новая Школа - онлайн-школа подготовки к ЕГЭ
Задача Задача №3431479
А
Аноним
25 сентября 2025 17:50 · публичный вопрос
А
Аноним

n = int(input()) product = 1 for i in range(2, n + 1, 2): product *= i print(product)

Ответ нейросети
25 сентября 2025 17:50

Кратко: эта программа вычисляет произведение всех чётных чисел от 2 до n (если такие есть). То есть 2 × 4 × 6 × ... до последнего чётного ≤ n. Если n < 2, результат остаётся 1.

Пошагово, что делает код

  • Считывается целое число n.
  • Присваивается product = 1.
  • Цикл: i принимает значения 2, 4, 6, ... до последнего чётного ≤ n. На каждом шаге выполняется умножение product на i.
  • В конце печатается получившееся product.

Если представить через количество парных чисел

  • Пусть k = floor(n / 2) — количество чётных чисел от 2 до n включительно.
  • Продукт равен 2 × 4 × 6 × ... × 2k = ∏_{j=1}^{k} (2j) = 2^k × k!

Примеры

  • n = 1: никаких чётных ≤ n, результат 1.
  • n = 2: 2 → результат 2.
  • n = 3: 2 → результат 2.
  • n = 4: 2 × 4 = 8 → результат 8.
  • n = 6: 2 × 4 × 6 = 48 → результат 48.
  • По формуле: если k = floor(n/2), то результат = 2^k × k!.

Сложность

  • Временная: O(n/2) ≈ O(n) операций умножения.
  • Память: O(1) дополнительной памяти.

Замечания

  • В Python целые числа бесконечно великие, поэтому даже очень большие результаты можно вывести, но время и память будут расти.
  • Величина результата растёт очень быстро, особенно при больших n.

Альтернатива с более явной формулой

  • Пусть k = n // 2. Тогда можно вычислять: product = 2**k * factorial(k).
  • Пример кода (краткий и понятный, если разрешено использовать math):
    • from math import factorial
    • n = int(input())
    • k = n // 2
    • product = (2**k) * factorial(k)
    • print(product)

Если нужно, могу привести конкретный пример тестирования или помочь переписать код под другой уровень сложности.