RosettaCodeData/Task/Prime-decomposition/Erlang/prime-decomposition.erl
2023-07-01 13:44:08 -04:00

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).