Олимпиада по информатике 2025-2026 муниципальный этап Нечётно-степенные числа

Олимпиада по информатике 2025-2026 муниципальный этап Нечётно-степенные числа

Скачать

Короткое объяснение решения

Нужно найти первые m подряд идущих чисел на отрезке [l,r][l, r], у которых все простые делители имеют нечётные степени. Такие числа называют нечётно-степенными.

1. Построение SPF-решета

Сначала мы создаём массив SPF (Smallest Prime Factor) для всех чисел до r.
SPF для числа — это его наименьший простой делитель.
Это позволяет очень быстро разложить любой n на простые множители.

2. Проверка числа

Чтобы узнать, является ли число «нечётно-степенным»:

  • с помощью SPF разбираем его на простые множители;

  • считаем степень каждого простого делителя;

  • если у какого-то делителя степень чётная → число не подходит.

Число подходит, если все степени нечётные.

3. Поиск последовательности длины m

Проходим числа от l до r:

  • если число нечётно-степенное → увеличиваем счётчик подряд идущих;

  • если нет → сбрасываем счётчик;

  • как только счётчик достигает m, мы нашли нужный отрезок.

Если на всём промежутке такой последовательности нет → выводим -1.