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

Пусть S  — сумма всех на­ту­раль­ных де­ли­те­лей це­ло­го числа, не счи­тая еди­ни­цы и са­мо­го числа.

Пусть K  — ко­ли­че­ство всех раз­лич­ных про­стых де­ли­те­лей це­ло­го числа, не счи­тая са­мо­го числа.

На­пи­ши­те про­грам­му, ко­то­рая пе­ре­би­ра­ет целые числа, пре­вы­ша­ю­щие 4 555 705 и не окан­чи­ва­ю­щи­е­ся на 3, в по­ряд­ке воз­рас­та­ния и ищет среди них такие, ко­то­рые можно пред­ста­вить в виде суммы чисел со­от­вет­ству­ю­щих им зна­че­ний S, K и не­ко­то­ро­го на­ту­раль­но­го числа, окан­чи­ва­ю­ще­го­ся на 23.

В от­ве­те за­пи­ши­те пер­вые пять най­ден­ных чисел в по­ряд­ке воз­рас­та­ния.

Ответ:

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

Ре­ше­ние.

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

def f(x):

divs = []

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

if x % i == 0:

divs.append(i)

if i != x // i:

divs.append(x // i)

primes = []

temp = x

d = 2

while d * d <= temp:

if temp % d == 0:

if d != x:

primes.append(d)

while temp % d == 0:

temp //= d

d += 1

if temp > 1 and temp != x:

primes.append(temp)

return divs, len(primes)

 

count = 0

for x in range(4_555_706, 6_000_000):

if x % 10 == 3:

continue

divs, K = f(x)

S = sum(divs)

N = x - S - K

if N > 0 and N % 100 == 23:

print(x)

count += 1

if count == 5:

break

 

 

 

Ответ: 4556054 4556805 4558124 4558712 4559054.


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