*(А. Богданов) Обозначим символом \(\#\) последовательность цифр, сумма которых равна простому числу \(P.\) Среди натуральных чисел, не превышающих \(10^{10},\) найдите все числа, соответствующие маске \(1234\#\) с разными \(P\) и делящиеся на \((P+2)^3.\) Если для какого-то \(P\) найдется несколько чисел, то запишите минимальное из них. В ответе запишите найденные числа в порядке возрастания. Справа от каждого числа соответствующее ему значение \(P.\)
Решение:
Python
primes = {2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59}
for k in range(1, 7):
for n in range(1234 * 10**k, 1235* 10**k):
ns = str(n)
if ns[:4] == '1234':
p = sum(int(z) for z in ns[4:])
if p in primes and n % (p + 2)**3 == 0:
print(n, p)
primes.remove(p)
Ответ:
\(12343000 \,\, 3\)
\(123400269 \,\, 17\)
\(123421875 \,\, 23\)
\(1234200000 \,\, 2\)
\(1234509249 \,\, 29\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене