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

В вы­ра­же­нии 317x37 + 4x2937 x обо­зна­ча­ет не­ко­то­рую цифру из ал­фа­ви­та си­сте­мы счис­ле­ния c ос­но­ва­ни­ем 37. Опре­де­ли­те наи­мень­шее зна­че­ние x, при ко­то­ром зна­че­ние дан­но­го вы­ра­же­ния крат­но 36. Для най­ден­но­го x вы­чис­ли­те част­ное от де­ле­ния дан­но­го вы­ра­же­ния на 36 и за­пи­ши­те его в от­ве­те в де­ся­тич­ной си­сте­ме счис­ле­ния.

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

Ре­ше­ние.

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

for i in range(0,37):

x = 3*37**3 + 1*37**2 + 7*37**1 + i*37**0 + 4*37**3 + i*37**2 + 2*37**1 + 9*37**0

if x % 36 == 0:

print(x // 36)

break

 

Ответ: 10087.

 

При­ведём ре­ше­ние Сер­гея Донец на PascalABC.NET:

var d := (('0'..'9') + ('A'..'Z')).ToArray;

function Horner(s: string; baseN: integer): Integer;

begin Result := 0;

foreach var ch in s do

Result := Result * baseN + d.IndexOf(ch);

end;

begin

foreach var x in d do begin

var a := Horner($'317{x}', 37);

var b := Horner($'4{x}29', 37);

var s := a + b;

if s mod 36 = 0 then begin

Println(s div 36);

exit;

end;

end;

end.


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