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

В чис­лах C59xBA98F37 и E3x5DA9C637 пе­ре­мен­ная x обо­зна­ча­ет не­ко­то­рую цифру из ал­фа­ви­та си­сте­мы счис­ле­ния с ос­но­ва­ни­ем 37. Опре­де­ли­те наи­боль­шее зна­че­ние x, при ко­то­ром про­из­ве­де­ние при­ведённых чисел крат­но 36. В от­ве­те за­пи­ши­те зна­че­ние числа 2x137 в де­ся­тич­ной си­сте­ме счис­ле­ния.

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

Ре­ше­ние.

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

for x in range(0,37):

i1 = 12*37**8 + 5*37**7 + 9*37**6 + x*37**5 + 11*37**4 + 10*37**3 + 9*37**2 + 8*37 + 15

i2 = 14*37**8 + 3*37**7 + x*37**6 + 5*37**5 + 13*37**4 + 10*37**3 + 9*37**2 + 12*37 + 6

if (i1 * i2) % 36 == 0:

print(2*37**2 + x*37 + 1)

 

Ответ: 4071.

 

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

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

function Horner(s: string; baseN, x: integer): BigInteger;

begin Result := 0;

foreach var ch in s do

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

end;

begin

var p := 37;

for var x := p-1 downto 0 do begin

var a := Horner('C59xBA98F', p, x);

var b := Horner('E3x5DA9C6', p, x);

if a*b mod (p-1) = 0 then begin

Println($'{2*p*p + x*p + 1}');

exit;

end;

end;

end.


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

Источник: Стат­Град: Тре­ни­ро­воч­ная ра­бо­та 24.10.2024 ИН2410102