Задания
Версия для печати и копирования в MS Word
Тип 25 № 92275
i

На­пи­ши­те про­грам­му, ко­то­рая пе­ре­би­ра­ет целые числа, боль­шие 2 018 974 440, в по­ряд­ке воз­рас­та­ния и ищет среди них числа, пред­став­лен­ные в виде про­из­ве­де­ния ровно двух про­стых мно­жи­те­лей, не обя­за­тель­но раз­лич­ных, каж­дый из ко­то­рых со­дер­жит ровно один раз в своей за­пи­си по­сле­до­ва­тель­ность цифр «43».

В от­ве­те за­пи­ши­те в пер­вом столб­це таб­ли­це пер­вые пять най­ден­ных чисел в по­ряд­ке воз­рас­та­ния, во вто­ром столб­це  — для каж­до­го из них наи­мень­ший най­ден­ный мно­жи­тель для каж­до­го из них.

Ко­ли­че­ство строк в таб­ли­це для от­ве­та из­бы­точ­но.

Ответ:

Спрятать решение

Ре­ше­ние.

##При­ведём ре­ше­ние на языке Python.

def f(x):

for i in range(2, int(x**0.5)+1):

if x%i==0:

return [i]+f(x//i)

return [x]

 

count = 0

for x in range(2_018_974_441, 2_100_000_000):

d = f(x)

if len(d) == 2:

if str(d[0]).count('43') == 1 and str(d[1]).count('43') == 1:

print(x, min(d))

count += 1

if count == 5:

break

 

При­ме­ча­ние: про­грам­ма вы­пол­ня­ет­ся про­дол­жи­тель­ное время.

 

В ре­зуль­та­те ра­бо­ты про­грам­ма долж­на вы­ве­сти сле­ду­ю­щее:

2018977769 27143

2018980091 9437

2018983349 643

2018997619 43

2019003907 4643

 

 

При­ведём ре­ше­ние Юрия Кра­силь­ни­ко­ва на языке Python.

def prostmn(n): # Про­стые мно­жи­те­ли

mn = [] # Спи­сок мно­жи­те­лей

d = 2 # Про­ве­ря­е­мый мно­жи­тель

while d * d <= n:

while n % d == 0: # Если де­лит­ся, до­бав­ля­ем мно­жи­тель

mn.append(d)

n //= d

d += 1 if d==2 else 2 # Про­бу­ем 2, 3, 5, 7, 9... и т.д.

if n > 1: # n - остав­ший­ся про­стой мно­жи­тель

mn.append(n)

return mn

k,n = 0,2018974441

while k < 5:

d = prostmn(n)

if len(d) == 2 and all(str(x).count('43')==1 for x in d):

print(n, min(d))

k += 1

n += 1

Источник: ЕГЭ—2026. Ос­нов­ная волна 18.06.2026. Под­бор­ка Школ­ко­во