Task

The objective is to write a function that finds the sum of all positive multiples of 3 or 5 below n.

Show output for n = 1000.

This is is the same as Project Euler problem 1.

Extra credit: do this efficiently for n = 1e20 or higher.




let sum_mults n =
        let sum = ref 0 in
        for i = 3 to (n - 1) do
                if (i mod 3) = 0 || (i mod 5) = 0 then
                        sum := !sum + i;
        done;
        !sum;;
 
print_endline (string_of_int (sum_mults 1000));;
 