Skip to content

Instantly share code, notes, and snippets.

@draftcode
Created December 16, 2011 06:44
Show Gist options
  • Select an option

  • Save draftcode/1484840 to your computer and use it in GitHub Desktop.

Select an option

Save draftcode/1484840 to your computer and use it in GitHub Desktop.
fact(0, 1).
fact(N, F) :-
N > 0,
N1 is N-1,
fact(N1, F1),
F is N*F1.
fib(0, 0).
fib(1, 1).
fib(N, F) :-
N > 1,
N1 is N-1, fib(N1, F1),
N2 is N-2, fib(N2, F2),
F is F1 + F2.
collatz(1).
collatz(N) :-
N > 1, N mod 2 =:= 0,
N1 is N//2,
write(N1), write(' '),
collatz(N1).
collatz(N) :-
N > 1, N mod 2 =:= 1,
N1 is 3*N+1,
write(N1), write(' '),
collatz(N1).
inS(0).
inS(N) :-
N > 0, (N-1) mod 2 =:= 0,
N1 is (N-1)//2, inS(N1).
inS(N) :-
N > 0, (N-1) mod 3 =:= 0,
N1 is (N-1)//3, inS(N1).
hanoi(0, _, _, _).
hanoi(N, X, Y, Z) :-
N > 0, N1 is N-1,
hanoi(N1, X, Z, Y),
write('move '), write(N),
write(' from '), write(X),
write(' to '), write(Y), nl,
hanoi(N1, Z, Y, X).
factsum(1, 1).
factsum(N, S) :-
N > 1, N1 is N-1,
fact(N, S1),
factsum(N1, S2),
S is S1+S2.
gcd(0, B, B).
gcd(A, B, G) :-
A > 0,
R is B mod A,
gcd(R, A, G).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment