Операнды арифметического выражения записаны в системе счисления с основанием 37:
32x43737 + 5x293737.
В записи чисел переменной x обозначена неизвестная цифра из алфавита 37-ричной системы счисления. Определите наименьшее значение x, при котором значение данного арифметического выражения в десятичной системе счисления кратно 63. Для найденного значения x вычислите частное от деления значения арифметического выражения на 63 и укажите его в ответе. Основание системы счисления в ответе указывать не нужно.
Приведём решение на языке Python.
for x in range(37 + 1):
t1 = 3*37**5 + 2*37**4 + x*37**3 + 4*37**2 + 3*37**1 + 7*37**0
t2 = 5*37**5 + x*37**4 + 2*37**3 + 9*37**2 + 3*37**1 + 7*37**0
t = t1 + t2
if t % 63 == 0:
print(t//63)
break
Ответ: 9966867.
Приведём решение Сергея Донец на языке PascalABC.NET.
function ToNm(digs: array of integer; base: integer): int64;
begin
Result := 0;
foreach var d in digs do
Result := Result * base + d;
end;
begin
var p := 37;
var s1 := '32x437';
var s2 := '5x2937';
var d := 63;
for var x := 0 to p-1 do
begin
var n1 := s1.Select(ch -> ch.IsDigit ? ch.ToDigit : ch = 'x' ? x : -1).ToArray;
var n2 := s2.Select(ch -> ch.IsDigit ? ch.ToDigit : ch = 'x' ? x : -1).ToArray;
var num := ToNm(n1, p) + ToNm(n2, p);
if num mod d = 0 then
begin
(num div d).Print;
exit;
end;
end;
end.

