Числа M и N записаны в системе счисления
M = 49x2612, N = 49x7012.
В записи чисел
При помощи цикла for будем перебирать
Приведём решение на языке Python.
for A in range(1, 1000):
for x in '0123456789AB':
M = int('49' + x + '26', 12)
N = int('49' + x + '70', 12)
if (M + A) % N == 0:
print(A)
exit
Ответ: 54.
Приведём решение Юрия Красильникова на языке Python.
a = 1
while True:
if any([(int(f'49{x}26',12)+a)%int(f'49{x}70',12)==0 for x in '0123456789AB']):
print(a)
break
a += 1
Приведём решение Сергея Донец на PascalABC.NET:
Условие (M + A) mod N = 0 означает: M + A делится на N без остатка
То есть:
M + A = k * N (k — целое число ≥ 1)
A = k * N - M
Наименьшее натуральное A получается при k = 1:
A = N - M
вычитаем в столбик: по условию N > M
N = 49x70
M = 49x26
A = 70 - 26 = 46 (cc12)
вычитаем в cc12, не в десятичной. или надо перевести в сс10.
вычтем числа в программе и проверим ответ в столбик:
uses School;
begin
var n:=Dec($'70', 12);
var m:=Dec($'26', 12);
var d:=Dec($'46', 12);
Println(d);
Println(n-m);
end.

