В числе 12x643y737
Приведём решение на языке Python.
c = []
for x in range(0,37):
for y in range(0,37):
t = 1*37**7+2*37**6+x*37**5+6*37**4+4*37**3+3*37**2+y*37**1+7*37**0
if t % 36 == 0:
c.append(y*37**1+x)
print(max(c))
Ответ: 1345.
Приведём решение Юрия Красильникова на языке Python.
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(37) for y in range(1,37) if num([1,2,x,6,4,3,y,7],37)%36==0]
print(max(a))
Примечание. Функция int в питоне работает с основаниями системами счисления
Приведём решение Сергея Донец на 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 maxVal := -1;
var s:='12x643y7';// N=12x643y7₃₇ k=yx₃₇
for var x := 0 to p - 1 do
for var y := 0 to p - 1 do begin
var number:=s // массив цифр числа
.Select(ch -> ch.IsDigit ? ch.ToDigit : ch = 'x'?x : ch = 'y'?y : 0)
.ToArray;
var num := ToNm(number, p);
if num mod 36 = 0 then
begin
var yx := ToNm([y, x], p);//k=yx₃₇
if yx > maxVal then maxVal := yx;
end;
end;
maxVal.Print;
end.

