open Unix;; let main () = let z = ref (read_int ()) in let t = ref 0 in let foundPrime = ref false in let startTime = Unix.gettimeofday() in if !z <= 2 then Printf.printf "2\n" else begin if !z mod 2 = 0 then z := !z-1 else z := !z-2; for countPrimes = 1 to 50 do foundPrime := false; while not !foundPrime do z := !z+2; t := 3; while (!t * !t <= !z) && (!z mod !t <> 0) do t := !t+2 done; foundPrime := !t * !t > !z done; Printf.printf "%d\n" !z done; Printf.printf "%f\n" (Unix.gettimeofday()-.startTime) end;; main ()