let sosu_dice = [2; 3; 5; 7; 11; 13] let comp_dice = [4; 6; 8; 9; 10; 12] let count_ans n = let rec comp_loop sosu lst = match lst with | [] -> 0 | x::xs -> if n = sosu * x then 1 else comp_loop sosu xs in let rec sosu_loop lst result = match lst with | [] -> result | x::xs -> let nextResult = if n mod x = 0 then result + (comp_loop x comp_dice) else result in sosu_loop xs nextResult in sosu_loop sosu_dice 0 let () = let k = read_int () in let ans = if k < 8 || k > 156 then 0. else (float_of_int (count_ans k)) /. 36. in Printf.printf "%0.13f\n" ans