Factorions: Difference between revisions
Content added Content deleted
(→{{header|zkl}}: added code) |
(→{{header|OCaml}}: added ocaml, translation of C) |
||
Line 150: | Line 150: | ||
1 2 |
1 2 |
||
</pre> |
</pre> |
||
=={{header|OCaml}}== |
|||
{{trans|C}} |
|||
<lang ocaml> |
|||
let () = |
|||
(* cache factorials from 0 to 11 *) |
|||
let fact = Array.make 12 0 in |
|||
fact.(0) <- 1; |
|||
for n = 1 to pred 12 do |
|||
fact.(n) <- fact.(n-1) * n; |
|||
done; |
|||
for b = 9 to 12 do |
|||
Printf.printf "The factorions for base %d are:\n" b; |
|||
for i = 1 to pred 1500000 do |
|||
let sum = ref 0 in |
|||
let j = ref i in |
|||
while !j > 0 do |
|||
let d = !j mod b in |
|||
sum := !sum + fact.(d); |
|||
j := !j / b; |
|||
done; |
|||
if !sum = i then (print_int i; print_string " ") |
|||
done; |
|||
print_string "\n\n"; |
|||
done |
|||
</lang> |
|||
=={{header|Perl 6}}== |
=={{header|Perl 6}}== |