-module(base26).
-export([to_d/1, to_b26/1, mult/2]).
to_d(Num) ->
F = fun(H, {N, Acc}) -> {N+1, (H - $A) * trunc(math:pow(26, N)) + Acc} end,
{_, Result} = lists:foldl(F, {0, 0}, lists:reverse(Num)),
Result.
to_b26(N) -> to_b26_impl(N, []).
to_b26_impl(0, Acc) -> Acc;
to_b26_impl(N, Acc) -> to_b26_impl(N div 26, [N rem 26 + $A|Acc]).
mult(A, B) ->
to_b26(to_d(A) * to_d(B)).