vtwntmtn #4888(2007/12/19 17:51 GMT) [ Erlang ] Rating0/0=0.00
1> c(goedel). {ok,goedel} 2> goedel:goedel(9). 512 3> goedel:goedel(81). 768 4> goedel:goedel(230). 108
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
-module(goedel). -export([goedel/1]). prime(Num) -> prime(Num - 1, [2], 3). prime(0, List, _) -> lists:last(List); prime(Num, List, Max) -> case lists:any(fun(X) -> (Max rem X) =:= 0 end, List) of true -> prime(Num, List, Max + 2); false -> prime(Num - 1, List ++ [Max], Max + 2) end. pow({_, 0}) -> 1; pow({X, Y}) -> X * pow({X, Y - 1}). column(Num) -> length(hd(io_lib:format("~B", [Num]))). goedel(Num) -> List = [pow(X) || X <- goedel(Num, [], column(Num))], lists:foldl(fun(X, Proc) -> X * Proc end, 1, List). goedel(_, List, 0) -> lists:zip([prime(X) || X <- lists:seq(1, length(List))], List); goedel(Num, List, Size) -> goedel(Num div 10, [Num rem 10] ++ List, Size - 1).
Rating0/0=0.00-0+
[ reply ]
vtwntmtn
#4888()
[
Erlang
]
Rating0/0=0.00
1> c(goedel). {ok,goedel} 2> goedel:goedel(9). 512 3> goedel:goedel(81). 768 4> goedel:goedel(230). 108-module(goedel). -export([goedel/1]). prime(Num) -> prime(Num - 1, [2], 3). prime(0, List, _) -> lists:last(List); prime(Num, List, Max) -> case lists:any(fun(X) -> (Max rem X) =:= 0 end, List) of true -> prime(Num, List, Max + 2); false -> prime(Num - 1, List ++ [Max], Max + 2) end. pow({_, 0}) -> 1; pow({X, Y}) -> X * pow({X, Y - 1}). column(Num) -> length(hd(io_lib:format("~B", [Num]))). goedel(Num) -> List = [pow(X) || X <- goedel(Num, [], column(Num))], lists:foldl(fun(X, Proc) -> X * Proc end, 1, List). goedel(_, List, 0) -> lists:zip([prime(X) || X <- lists:seq(1, length(List))], List); goedel(Num, List, Size) -> goedel(Num div 10, [Num rem 10] ++ List, Size - 1).Rating0/0=0.00-0+
[ reply ]