(* The 5-digit number, 16807=7^(5), is also a fifth power. Similarly, the 9-digit number, 134217728=8^(9), is a ninth power. How many n-digit positive integers exist which are also an nth power? *) open Big_int;; let digits x = let rec digits b = if (gt_big_int b x) then 0 else (1+(digits (mult_int_big_int 10 b))) in digits (big_int_of_int 1) ;; let search = let rec search x y n = if(x > 9) then n else let e = power_int_positive_int x y in let d = digits e in if(d < y) then search (x+1) 1 n else if(d > y) then search x (y+1) n else ( Printf.printf "%d %d %s %d\n" x y (string_of_big_int e) d; search x (y+1) (n+1) ) in search 1 1 0 ;; Printf.printf "%d\n" search;;