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

В числе 21x457y937 x и y обо­зна­ча­ют не­ко­то­рые цифры из ал­фа­ви­та си­сте­мы счис­ле­ния с ос­но­ва­ни­ем 37. Опре­де­ли­те такие зна­че­ния x и y, при ко­то­рых при­ведённое число крат­но 36, а число xy37 имеет наи­боль­шее воз­мож­ное зна­че­ние. В от­ве­те за­пи­ши­те зна­че­ние числа xy37 в де­ся­тич­ной си­сте­ме счис­ле­ния.

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

Ре­ше­ние.

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

c = []

for x in range(1,37):

for y in range(0,37):

t = 2*37**7+1*37**6+x*37**5+4*37**4+5*37**3+7*37**2+y*37**1+9

if t % 36 == 0:

c.append(x*37**1+y)

print(max(c))

 

Ответ: 1340.

 

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

В ре­ше­нии ис­поль­зу­ет­ся функ­ция num(digits,base). Digits  — спи­сок целых чисел, со­дер­жа­щий чис­ло­вые зна­че­ний цифр числа в си­сте­ме счис­ле­ния по ос­но­ва­нию base. Функ­ция воз­вра­ща­ет зна­че­ние числа, за­пи­сан­но­го этими циф­ра­ми.

def num(digits,base):

n=0

for d in digits:

n=n*base+d

return n

a=[num([y,x],37) for x in range(1,37) for y in range(37) if num([2,1,x,5,4,7,y,9],37)%36==0]

print(max(a))

 

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

def my_int(n: list, b: int):

return sum(x * b**i for i, x in enumerate(n[::-1]))

 

R = []

for x in range(0, 37):

for y in range(0, 37):

A = my_int([2, 1, x, 4, 5, 7, y, 9], 37)

if A % 36 == 0:

R.append(my_int([x, y], 37))

print(max(R))


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