Задание: Найдите все натуральные числа, принадлежащие отрезку [35 000 000; 40 000 000], у которых ровно пять различных нечётных делителей (количество чётных делителей может быть любым). В ответе перечислите найденные числа в порядке возрастания. Решение: Нужные делители будем искать методом перебора, который немного оптимизируем так, чтобы проход был не от 1 до ТЕКУЩЕГО_ЧИСЛА, а до корня из текущего числа. Так как, если мы знаем делитель division до корня, то легко найти парный делитель, лежащий после корня: pair_division := x div division; где x - это текущее число, делители которого ищутся. Тогда основное тело программы можно записать довольно компактно и просто: x_start - начало диапазона поиска, x_end - конец диапазона. Для каждого числа current из этого диапазона мы проверяем, есть ли у него 5 различных нечетных делителей. Если да, то выводим его на экран. Теперь реализация функции countOddDivisions() : В этой функции для оптимизации сделано следующее. Если мы находим 6 нечетны
Задание 25 из ЕГЭ по информатике: разбираемся с делителями
29 мая 202129 мая 2021
1259
2 мин