*(П. Тюрин) Назовём маской числа последовательность цифр, в которой также могут встречаться следующие символы:
Напишите программу, которая перебирает целые числа, большие \(100~000~000,\) в порядке возрастания и ищет среди них числа, кратные \(9973,\) у которых ровно семь различных делителей, не считая единицы и самого числа, и кроме того наибольший делитель, не равный самому числу, соответствует маске \({*}4{*}.\) В ответе в первом столбце таблицы запишите первые \(5\) найденных чисел в порядке возрастания, а во втором столбце – наибольший делитель для каждого из чисел.
Решение:
Искомое число должно иметь девять делителей (включая единицу и само число). Значит, оно должно представлять собой либо восьмую степень простого числа, либо вторую степень произведения двух простых чисел. Теперь заметим, что число \(9973\) — простое. Восьмая степень этого числа — очень большое число: где-то в районе \(10^{24}.\) Поэтому, искомые первые пять чисел должны иметь вид $$p^2 \cdot 9973^2,$$ где \(p\) — первые простые числа \(\{2, \, 3, \, 5, \ldots \}.\) Необходимо только проверить, чтобы наибольший нетривиальный делитель, который представляется в виде \(p \cdot 9973^2,\) содержал в своей записи цифру \(4.\)
Python
primes = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37]
q = 0
for p in primes:
n = (p * 9973)**2
if '4' in str(9973**2 * p):
print(n, 9973**2 * p)
q += 1
if q == 5:
break
Ответ:
\(397842916 \,\, 198921458\)
\(2486518225 \,\, 497303645\)
\(12034748209 \,\, 1094068019\)
\(16808863201 \,\, 1292989477\)
\(83646473089 \,\, 2884361141\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене