Напишите программу на Python, которая находит числа среди целых чисел в диапазоне [321654; 654321], которые имеют

Напишите программу на Python, которая находит числа среди целых чисел в диапазоне [321654; 654321], которые имеют только нечетные делители, количество которых больше 70. Не учитывайте делители 1 и само число. Для каждого найденного числа выведите само число и его максимальный делитель. Пример: для числа 15 имеются делители 3 и 5. Следовательно, результатом будет пара чисел 15 и 5.
Золото

Золото

Конечно! Вот решение вашей задачи:

python
def check_odd_divisors(num):
divisors = []
# Проверяем делители от 2 до √num, так как все делители числа не превышают его квадратного корня
for i in range(2, int(num 0.5) + 1):
if num % i == 0:
# Проверяем, является ли делитель нечетным
if i % 2 != 0:
divisors.append(i)
if (num // i) % 2 != 0:
divisors.append(num // i)
return len(set(divisors)) > 70


lower_bound = 321654
upper_bound = 654321

for number in range(lower_bound, upper_bound + 1):
if check_odd_divisors(number):
max_divisor = max(filter(lambda x: number % x == 0 and x % 2 != 0, range(2, int(number
0.5) + 1)))
print(f"Число: {number}, Максимальный делитель: {max_divisor}")


Данная программа итерируется в заданном диапазоне [321654; 654321] и проверяет каждое число. Для каждого числа она вызывает функцию `check_odd_divisors`, которая проверяет, имеет ли число только нечетные делители и количество таких делителей больше 70.

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

Мы используем цикл `for` для перебора всех чисел в заданном диапазоне, а также функцию `filter` и лямбда-функцию для фильтрации нечетных делителей числа.

Пожалуйста, дайте мне знать, если у вас возникнут какие-либо вопросы по этому решению.
Знаешь ответ?
Задать вопрос
Привет!
hello