fun prime n = let val a = List.tabulate (n - 1, fn x => x + 2) fun loop [] = [] | loop (x::xs) = x :: loop (List.filter (fn i => i mod x <> 0) xs) in loop a end fun goedel (n : IntInf.int) = let open IntInf val p = map fromInt (prime 100) val a = map (valOf o Int.fromString o str) ((explode o toString) n) in toString (ListPair.foldl (fn (x, y, z) => pow (x, y) * z) 1 (p, a)) end fun println s = print (s ^ "\n") val _ = println (goedel 9) val _ = println (goedel 81) val _ = println (goedel 230) val _ = println (goedel 19425463134)