let eratosthenes n = let a = Array.make (n+1) true in
begin
for i = 2 to n/2 do
let m = ref (i+i) in
while (!m) <= n do
a.(!m) <- false;
m := (!m)+i
done;
done;
for i = 2 to n do
if a.(i) then (print_int i; print_string ", ")
done
end;;
C.(i).(j) = sum 0 n (fun k -> A.(i).(k)*B.(k).(j))
let det2 A = ... let rec det (* n = Array.length A *) A = ... uses minors