Тип 14 № 68276 

Кодирование чисел. Системы счисления. Операции в одной СС
i
Числа AB967D8p и E435A98p записаны в системе счисления с основанием p. При каком минимальном p сумма этих чисел будет делиться на p − 1?
Решение. Приведём решение на языке Python.
otv = []
for p in range(15,100):
# так как во втором числе присуствеут E, система счисления не может быть меньше 15-ричной
t1 = 10*p**6+11*p**5+9*p**4+6*p**3+7*p**2+13*p**1+8
t2 = 14*p**6+4*p**5+3*p**4+5*p**3+10*p**2+9*p**1+8
if (t1+t2)%(p-1)==0:
otv.append(p)
print(min(otv))
Ответ: 40.
Приведём решение Георгия Журавлева на языке Python.
def cc10(m, n):
m = m[::-1]
s = 0
for i in range(len(m)):
s += m[i] * n ** i
return s
for p in range(15,100):
f = cc10([10,11,9,6,7,13,8],p) + cc10([14,4,3,5,10,9,8],p)
if f%(p-1)==0:
print(p)
Приведём решение Сергея Донец на PascalABC.NET:
function Horner(s: string; baseN: integer): int64;
begin
var d := (('0'..'9') + ('A'..'Z')).ToArray;
Result := 0;
foreach var ch in s do
Result := Result * baseN + d.IndexOf(ch);
end;
begin
var p := 15;
while (Horner('AB967D8', p) + Horner('E435A98', p)) mod (p - 1) <> 0 do
p += 1;
Println(p);
end.
Ответ: 40