corrade-nucleus-nucleons
/script-kiddie/002_script_kiddie/script-kiddie/node_modules/ace-builds/demo/kitchen-sink/docs/prolog.plg |
@@ -0,0 +1,18 @@ |
partition([], _, [], []). |
partition([X|Xs], Pivot, Smalls, Bigs) :- |
( X @< Pivot -> |
Smalls = [X|Rest], |
partition(Xs, Pivot, Rest, Bigs) |
; Bigs = [X|Rest], |
partition(Xs, Pivot, Smalls, Rest) |
). |
|
quicksort([]) --> []. |
quicksort([X|Xs]) --> |
{ partition(Xs, X, Smaller, Bigger) }, |
quicksort(Smaller), [X], quicksort(Bigger). |
|
perfect(N) :- |
between(1, inf, N), U is N // 2, |
findall(D, (between(1,U,D), N mod D =:= 0), Ds), |
sumlist(Ds, N). |