Задача #4263
Делители и маски
Напишите программу, которая перебирает целые числа, большие 2 626 695 891, в порядке возрастания и ищет среди них числа, представленные в виде произведения ровно двух простых множителей, не обязательно различных, каждый из которых ровно
один раз содержит в своей записи 67 (67 - идущие подряд друг за другом в указанном порядке цифры 6 и 7).
В ответе в первом столбце таблицы запишите первые 5 найденных чисел в порядке возрастания, а во втором столбце - для каждого из них соответствующий наименьший найденный множитель.
Количество строк в таблице для ответа избыточно.
Войдите, чтобы история ответов и статистика сохранялись.
Решение
Ответ
2626696861
6793
2626700987
1567
2626704089
167
2626711691
2267
2626713493
67
Видео по задаче
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(2_626_695_892,2_700_000_000):
d = f(x)
if len(d)==2 and str(d[0]).count('67')==1 and str(d[1]).count('67')==1:
print(x,min(d))