Задача #4260
Делители и маски
Напишите программу, которая перебирает целые числа, большие 1 104 285 717, в порядке возрастания и ищет среди них числа, представляющие собой произведение двух простых множителей, не обязательно различных, каждый из которых содержит в своей записи ровно одну комбинацию цифр 16.
В ответе в первом столбце таблицы запишите первые 5 найденных чисел в порядке возрастания, а во втором столбце - для каждого из них соответствующий наименьший из найденных множителей.
Количество строк в таблице для ответа избыточно.
Войдите, чтобы история ответов и статистика сохранялись.
Решение
Ответ
1104293251
16691
1104315547
1669
1104332237
1669
1104342251
1669
1104352547
163
Видео по задаче
def p(x):
for i in range(2,int(x**0.5)+1):
if x%i==0:
return [i]+p(x//i)
return [x]
for x in range(1_104_285_718,1_200_000_000):
d = p(x)
if len(d)==2 and str(d[0]).count('16')==1 and\
str(d[1]).count('16')==1:
print(x, min(d))