Напишите программу. которая перебирает целые числа, большие 650 000, в порядке возрастания и ищет среди них такие, для которых наибольший натуральный делитель, не равный самому числу, не является простым числом. Программа должна найти и вывести первые 6 таких чисел и соответствующие им значения упомянутых делителей.
Формат вывода: для каждого из 6 таких найденных чисел через пробел сначала выводится само число, затем упомянутый делитель. Числа выводятся в порядке возрастания найденных чисел.
Пример вывода: число1 F1 число2 F1…
def is_prime(number): # функция проверки числа на простоту
if number == 1: return False
for div in range(2, int(number ** 0.5) + 1):
if number % div == 0:
return False
return True
def check_max_div(number): # функция, которая проверяет, что максимальный нетривиальный делитель составное число
for div in range(2, int(number ** 0.5) + 1):
if number % div == 0:
if not is_prime(number // div):
return number // div
return False
return False
counter = 0
for i in range(650_001, 650_000 + 1000000):
k = check_max_div(i)
if k != 0:
counter += 1
print(i, k, end=" ")
if counter == 6:
break
Ответ: 650001 216667 650003 28261 650004 325002 650005 130001 650006 325003 650007 216669