Задача #4262
Делители и маски
Пусть М - сумма минимального максимального простых натуральных делителей целого числа, не считая самого числа. Если таких делителей у числа нет, то значение М считается равным нулю. Напишите программу, которая перебирает целые числа, большие 8 007 494 154, в порядке возрастания и ищет среди них такие, для которых М больше 80 000, является простым числом и в своём написании содержит последовательность цифр 567 (567 - идущие подряд друг за другом в указанном порядке цифры 5, 6 и 7) ровно один раз.
В ответе запишите в первом столбце таблицы первые 5 найденных чисел в порядке возрастания, а во втором столбце - соответствующие им значения М.
Например, для числа 49 M = 14; для числа 42 M = 9.
Количество строк в таблице для ответа избыточно.
Решение
Ответ
Видео по задаче
def f(x):
for i in range(2, int(x**0.5)+1):
if x%i==0:
return [i]+f(x//i)
return [x]
for x in range(8_007_494_155,8_300_000_000):
d = f(x)
if len(d)>1:
M = max(d)+min(d)
if M>80_000 and str(M).count('567')==1 and len(f(M))==1:
print(x,M)