В системе счисления с основанием p выполняется равенство zx + xy = zyB.
Буквами x, y, и z обозначены некоторые цифры из алфавита системы счисления с основанием p. Определите значение числа xyzp и запишите это значение в десятичной системе счисления.
Приведём решение на языке Python.
alphabet = sorted('1234567890QWERTYUIOPASDFGHJKLZXCVBNM')
for p in range(12, 36+1):
for x in alphabet[1:p]:
for y in alphabet[:p]:
for z in alphabet[1:p]:
if int(z+x, p) + int(x+y, p) == int(z+y+'B', p):
print(int(x+y+z, p))
Ответ: 1585.
Приведём решение Михаила Глинский на языке Python.
for p in range (11,20):
for x in range(1, p):
for y in range(0,p):
for z in range(1,p):
if z*p+x+x*p+y==z*p**2+y*p+11:
print(x*p**2+y*p+z)
Приведём решение Сергея Донец на PascalABC.NET:
uses School;
begin var d := (('0'..'9') + ('A'..'Z')).ToArray;
for var p:=12 to 36 do foreach var x in d[1:p] do
foreach var z in d[1:p] do
foreach var y in d[:p] do begin var a := Dec($'{z}{x}', p);
var b := Dec($'{x}{y}', p);
var c := Dec($'{z}{y}B', p);
if a+b=c then begin
Println(Dec($'{x}{y}{z}', p));
exit;
end;
end;
end.

