Perfect numbers: Difference between revisions
Content added Content deleted
No edit summary |
(added ocaml) |
||
Line 204: | Line 204: | ||
sum == n |
sum == n |
||
)</pre> |
)</pre> |
||
=={{header|OCaml}}== |
|||
<lang ocaml>let perf n = |
|||
let sum = ref 0 in |
|||
for i = 1 to n-1 do |
|||
if n mod i = 0 then |
|||
sum := !sum + i |
|||
done; |
|||
!sum = n</lang> |
|||
Functional style: |
|||
<lang ocaml>(* range operator *) |
|||
let rec (--) a b = |
|||
if a > b then |
|||
[] |
|||
else |
|||
a :: (a+1) -- b |
|||
let perf n = n = List.fold_left (+) 0 (List.filter (fun i -> n mod i = 0) (1 -- (n-1)))</lang> |
|||
=={{header|Perl}}== |
=={{header|Perl}}== |