Some checks failed
Test, Build, and Deploy / test-build-deploy (push) Failing after 37s
PE12 with target = 10:
let count_divisors n =
let c = ref 0 in
let i = ref 1 in
while !i * !i <= n do
if n mod !i = 0 then begin
c := !c + 1;
if !i * !i <> n then c := !c + 1
end;
i := !i + 1
done;
!c
let first_triangle_with_divs target =
walk triangles T(n) = T(n-1) + n until count_divisors T > target
T(15) = 120 has 16 divisors — first to exceed 10. Real PE12 uses
target 500 (answer 76576500); 10 stays well under budget.
126 baseline programs total.
27 lines
472 B
OCaml
27 lines
472 B
OCaml
let count_divisors n =
|
|
let c = ref 0 in
|
|
let i = ref 1 in
|
|
while !i * !i <= n do
|
|
if n mod !i = 0 then begin
|
|
c := !c + 1;
|
|
if !i * !i <> n then c := !c + 1
|
|
end;
|
|
i := !i + 1
|
|
done;
|
|
!c
|
|
|
|
let first_triangle_with_divs target =
|
|
let t = ref 0 in
|
|
let n = ref 0 in
|
|
let found = ref false in
|
|
while not !found do
|
|
n := !n + 1;
|
|
t := !t + !n;
|
|
if count_divisors !t > target then found := true
|
|
done;
|
|
!t
|
|
|
|
;;
|
|
|
|
first_triangle_with_divs 10
|