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

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

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

На­при­мер, для числа 105 M  =  7.

Ответ:

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

Ре­ше­ние.

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

def prime(n):

if n == 2:

return True

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

if n % i == 0:

return False

return True

 

def maxi_div(n):

deliteli = [0]

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

if n%i == 0:

if prime(i):

deliteli.append(i)

if prime(n//i):

deliteli.append(n//i)

return max(deliteli)

 

count = 0

for i in range (1750001, 10**10):

maxi = maxi_div(i)

if maxi <= 15000 and maxi % 10 == 7:

print(i)

i += 1

count += 1

if count == 5:

break

 

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

1750001

1750006

1750023

1750041

1750044

 

 

 

Ответ: 1750001; 1750006; 1750023; 1750041; 1750044.


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