Jump to content

Proper divisors: Difference between revisions

(→‎{{header|Eiffel}}: adding erlang)
Line 328:
15120 has with 79 divisors the highest number of proper divisors.
</pre>
 
=={{Header|Erlang}}==
 
<lang erlang>
-module(properdivs).
-export([divs/1,sumdivs/1]).
 
divs(0) -> [];
divs(1) -> [];
divs(N) -> lists:sort(divisors(1,N)).
 
divisors(1,N) ->
[1] ++ divisors(2,N,math:sqrt(N)).
 
divisors(K,_N,Q) when K > Q -> [];
divisors(K,N,_Q) when N rem K =/= 0 ->
[] ++ divisors(K+1,N,math:sqrt(N));
divisors(K,N,_Q) when K * K == N ->
[K] ++ divisors(K+1,N,math:sqrt(N));
divisors(K,N,_Q) ->
[K, N div K] ++ divisors(K+1,N,math:sqrt(N)).
 
sumdivs(N) -> lists:sum(divs(N)).
 
</lang>
 
=={{header|Fortran}}==
Anonymous user
Cookies help us deliver our services. By using our services, you agree to our use of cookies.