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

Пусть M  — сумма ми­ни­маль­но­го и мак­си­маль­но­го про­стых де­ли­те­лей це­ло­го числа, не счи­тая са­мо­го числа. Если у числа нет про­стых де­ли­те­лей, то M  =  0.

На­пи­ши­те про­грам­му, ко­то­рая пе­ре­би­ра­ет целые числа боль­шие 7 000 000, в по­ряд­ке воз­рас­та­ния и ищет среди них пер­вые пять таких чисел, для ко­то­рых M за­кан­чи­ва­ет­ся на 13.

 

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

Ответ:

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

Ре­ше­ние.

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

def prime(n):

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

if n%i==0: return False

return True

def divs(n):

count = 0

div = []

for i in range(2, n//2 + 1):

if n%i == 0 and prime(i):

div.append(i)

count += 1

return count, div

 

k = 7000000

counter = 0

while True:

c, d = divs(k)

if c >= 2:

s = d[0] + d[-1]

if s%100 == 13:

print(k)

counter += 1

if counter == 5: break

k += 1

 

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

7000018

7000076

7000088

7000096

7000124

 

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

def prostoe(n):

k = 2

while k**2 <= n:

if n%k == 0: return False

k += 1

return True

def M(n):

d = set()

k = 2

while k**2 <= n:

if n%k == 0:

d |= {k,n//k}

k += 1

p = [x for x in d if prostoe(x)]

return min(p) + max(p) if p else 0

k,n = 0,7000000

while k < 5:

n += 1

if M(n)%100 == 13:

k += 1

print(n)


Аналоги к заданию № 81491: 81497 Все

Источник: ЕГЭ по ин­фор­ма­ти­ке 11.06.2025. Ос­нов­ная волна. Даль­ний Во­сток