Пусть F — разность максимального и минимального натуральных делителей целого числа, не считая единицы и самого числа. Если таких делителей у числа нет, то считаем значение F равным нулю. Напишите программу, которая перебирает целые числа, большие 850 000, в порядке возрастания и ищет среди них такие, для которых значение F не равно нулю и делится нацело на 13. Программа должна найти и вывести первые 6 таких чисел и соответствующие им значения F.
Формат вывода: для каждого из 6 таких найденных чисел через сначала выводится само число, затем значение F. Числа выводятся в порядке возрастания найденных чисел.
Пример вывода: число1 F1 число2 F1…
Например, для числа 105 .
def f(number): # функция, которая считает разность максимального и минимального нетривиального делителей
for div in range(2, int(number ** 0.5) + 1):
if number % div == 0:
return number // div - div
return 0
counter = 0
for i in range(850_001, 850_000 + 1000000):
k = f(i)
if k != 0 and k % 13 == 0:
counter += 1
print(i, k, end=" ")
if counter == 6:
break
Ответ: 850022 425009 850048 425022 850053 283348 850074 425035 850099 7410 850100 425048