(К. Багдасарян) Назовём маской числа последовательность цифр, в которой также могут встречаться следующие символы:
Например, маске \({?}1P2\) соответствуют числа \(11132,\) \(210132,\) \(810032\) и т.д.
Среди натуральных чисел, не превышающих \(10^7,\) найдите все числа, соответствующие маске \(9P?,\) делящиеся на \(9998\) без остатка. В ответе запишите в первом столбце таблицы все найденные числа в порядке возрастания, а во втором столбце – соответствующие им результаты деления этих чисел на \(9998.\)
Решение:
Python
from math import isqrt
def is_prime(n):
if n <= 2:
return 2
if n & 1 == 0:
return False
for x in range(3, isqrt(n) + 1, 2):
if n % x == 0:
return False
return True
for n in range(9998, 10**7, 9998):
ns = str(n)
if ns[0] == '9' and is_prime(int(ns[1:-1])):
print(n, n // 9998)
Ответ:
\(9028194 \,\, 903\)
\(9808038 \,\, 981\)
\(9918016 \,\, 992\)
\(9928014 \,\, 993\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене