В системе счисления с основанием p выполняется равенство
Определите значение числа xyzwp и запишите это значение в десятичной системе счисления.
Приведём решение данной задачи на языке Python.
for p in range(10, 15):
for x in range(p):
for y in range(p):
for z in range(p):
for w in range(p):
s = y * (p**3) + 1 * (p**2) + 8 * (p**1) + x
r = w * (p**3) + y * (p**2) + 9 * (p**1) + 8
t = x * (p**4) + x * (p**3) + z * (p**2) + 4 * (p**1) + y
if s + r == t:
print(x * (p**3) + y * (p**2) + z * (p**1) + w)
Ответ: 3866.
Приведём решение Юрия Красильникова на языке Python.
d = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'
for p in range(10,36):
for x in d[:p]:
for y in d[:p]:
for z in d[:p]:
for w in d[:p]:
if int(f'{y}18{x}',p)+int(f'{w}{y}98',p)==int(f'{x}{x}{z}4{y}',p):
print(int(f'{x}{y}{z}{w}',p))
Приведём решение Сергея Донец на PascalABC.NET:
var d := (('0'..'9') + ('A'..'Z')).ToArray;
function Horner(s: string; baseN: integer): Integer;
begin Result := 0;
foreach var ch in s do
Result := Result * baseN + d.IndexOf(ch);
end;
begin
for var p:=9 to 36 do
foreach var x in d[:p] do
foreach var y in d[:p] do
foreach var z in d[:p] do
foreach var w in d[:p] do begin
var a := Horner($'{y}18{x}', p);
var b := Horner($'{w}{y}98', p);
var c := Horner($'{x}{x}{z}4{y}', p);
if a+b=c then begin
Println(Horner($'{x}{y}{z}{w}', p));
exit; end; end;
end.

