В числах 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.

