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

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

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

Ре­ше­ние.

При­ведём ре­ше­ние на языке 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 = 7500000

counter = 0

while True:

c, d = divs(k)

if c >= 2:

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

if s%100 == 32 and s%c == 0:

print(k)

counter += 1

if counter == 5: break

k += 1

 

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

7500045

7500107

7500131

7500317

7500589

 

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

def prostoe(n):

k=2

while k**2<=n:

if n%k==0: return False

k+=1

return True

 

def prostdel(n):

d=set()

k=2

while k**2<=n:

if n%k==0: d|={k,n//k}

k+=1

return sorted([x for x in d if prostoe(x)])

n=7500001

k=0

while k<5:

p=prostdel(n)

if p and (p[0]+p[-1])%100==32 and (p[0]+p[-1])%len(p)==0:

print(n)

k+=1

n+=1

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