open Perfsqrt let rec int2nat = function 0 -> O | n -> S (int2nat (n-1));; let rec nat2int = function O -> 0 | S p -> 1+(nat2int p);; let context_strings s = match perfect_sqrt (int2nat (int_of_string s)) with Perfsqrt.In_pointed v -> (string_of_int (nat2int v)) | _ -> assert false;; if !Sys.interactive then () else let s = context_strings (Sys.argv.(1)) in (print_endline s);;