11 lines
249 B
Erlang
11 lines
249 B
Erlang
% no stack consuming version
|
|
|
|
factors(N) ->
|
|
factors(N,2,[]).
|
|
|
|
factors(1,_,Acc) -> Acc;
|
|
factors(N,K,Acc) when N < K*K -> [N|Acc];
|
|
factors(N,K,Acc) when N rem K == 0 ->
|
|
factors(N div K,K, [K|Acc]);
|
|
factors(N,K,Acc) ->
|
|
factors(N,K+1,Acc).
|