Some checks failed
Test, Build, and Deploy / test-build-deploy (push) Failing after 23s
Number that equals the sum of factorials of its digits: 145 = 1! + 4! + 5! = 1 + 24 + 120 Implementation: fact n iterative factorial digit_fact_sum n walk digits, sum fact(digit) euler34 limit scan 3..limit, accumulate matches The only other factorion is 40585 = 4!+0!+5!+8!+5!. Real PE34 sums both (= 40730); 2000 keeps under our search budget. 121 baseline programs total.
25 lines
373 B
OCaml
25 lines
373 B
OCaml
let fact n =
|
|
let r = ref 1 in
|
|
for i = 2 to n do r := !r * i done;
|
|
!r
|
|
|
|
let digit_fact_sum n =
|
|
let m = ref n in
|
|
let s = ref 0 in
|
|
while !m > 0 do
|
|
s := !s + fact (!m mod 10);
|
|
m := !m / 10
|
|
done;
|
|
!s
|
|
|
|
let euler34 limit =
|
|
let total = ref 0 in
|
|
for n = 3 to limit do
|
|
if digit_fact_sum n = n then total := !total + n
|
|
done;
|
|
!total
|
|
|
|
;;
|
|
|
|
euler34 2000
|