def add_in_base(a: str, b: str, base: int):
"""Поразрядное сложение двух чисел в системе с основанием base (2..10).
Возвращает (результат, количество переносов)."""
a, b = a[::-1], b[::-1] # идём от младшего разряда к старшему
n = max(len(a), len(b))
result = []
carry = 0
carries_count = 0
for i in range(n):
da = int(a[i]) if i < len(a) else 0
db = int(b[i]) if i < len(b) else 0
s = da + db + carry
result.append(str(s % base)) # цифра разряда
carry = s // base # перенос в следующий разряд
if carry:
carries_count += 1
if carry: # перенос из старшего разряда
result.append(str(carry))
return "".join(reversed(result)), carries_count
base = 8
num1 = "567"
num2 = "245"
res, carries = add_in_base(num1, num2, base)
print(f"Основание системы счисления: {base}")
print(f"{num1} + {num2} = {res} (в системе с основанием {base})")
print(f"Количество переносов: {carries}")
# Проверка через десятичную систему
check = int(num1, base) + int(num2, base)
print(f"Проверка: {int(num1, base)} + {int(num2, base)} = {check} (dec), "
f"результат программы в dec = {int(res, base)}")
print("Результат верный" if check == int(res, base) else "Ошибка!")