Алгоритм решения задания 15. Часть 2
Учимся решать 15 задания второго типа
Читать
Пусть F – разность максимального и минимального натуральных делителей целого числа, не считая единицы и самого числа. Если таких делителей нет, то считаем значение F равным нулю.
Напишите программу, которая перебирает целые числа, большие 850 000, в порядке возрастания и ищет среди них такие, для которых значение F не равно нулю и делится нацело на 11. Программа должна найти и вывести первые 6 таких чисел и соответствующие им значения F.
from math import isqrt
def f(num):
res = set()
for i in range(2, isqrt(num) + 1):
if num % i == 0:
res |= {i, num // i}
if len(res):
diff = max(res) - min(res)
if diff % 11 == 0:
return diff
return 0
cnt = 0
for i in range(850_001, 10 ** 20):
if M := f(i):
print(i, M)
cnt += 1
if cnt == 6:
break
