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

Маска числа  — это по­сле­до­ва­тель­ность цифр, в ко­то­рой могут встре­чать­ся спе­ци­аль­ные сим­во­лы «?» и «*». Сим­вол «?» озна­ча­ет ровно одну про­из­воль­ную цифру, сим­вол «*» озна­ча­ет про­из­воль­ную (в том числе пу­стую) по­сле­до­ва­тель­ность цифр.

При­мер. Маске 123*4?5 со­от­вет­ству­ют числа 123405 и 12376415.

Най­ди­те все на­ту­раль­ные числа, не пре­вы­ша­ю­щие 1010, ко­то­рые со­от­вет­ству­ют маске 1?2655*8 и при этом без остат­ка де­лят­ся на 4173.

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

Ответ:

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

Ре­ше­ние.

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

for x in range(10):

s = '1' + str(x) + '26558'

if int(s) % 4173 == 0:

print(s)

for x in range(10):

for y in range(1000):

s = '1' + str(x) + '2655' + str(y) + '8'

if int(s) < 10**10 and int(s) % 4173 == 0:

print(s)

for x in range(10):

for y in range(1000):

s = '1' + str(x) + '26550' + str(y) + '8'

if int(s) < 10**10 and int(s) % 4173 == 0:

print(s)

for x in range(10):

for y in range(1000):

s = '1' + str(x) + '265500' + str(y) + '8'

if int(s) < 10**10 and int(s) % 4173 == 0:

print(s)

 

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

1026558

1226553198

1526550168

 

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

from fnmatch import*

a = []

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

if fnmatch(str(i),'1?2655*8') and i%4173==0:

a.append(i)

a.sort()

for i in range (0,len(a)):

print(a[i])

 

При­ведём ре­ше­ние Ан­дрея Тух­ма­но­ва на языке Python.

from fnmatch import *

for i in range(0, 10 ** 10, 4173):

if fnmatch(str(i), '1?2655*8'):

print(i)


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