Toggle navigation
?
users online
Logout
Open hangout
Open chat for current file
natural(0). natural(N+1):-natural(N). add(0,X,X). add(X+1,Y,Z+1):-add(X,Y,Z). rem(X, X, 0):-!. rem(X, Y, R) :- add(X1,Y,X), rem(X1,Y,R),!. rem(X, _, X). int_natural(0,0). int_natural(X, Y+1):- X0 is X-1, int_natural(X0, Y). fizz_buzz(N, 'fizzbuzz') :- rem(N, 0+1+1+1, 0), rem(N, 0+1+1+1+1+1, 0). fizz_buzz(N, fizz) :- rem(N, 0+1+1+1, 0). fizz_buzz(N, buzz) :- rem(N, 0+1+1+1+1+1, 0). fizz_buzz(N, N). fizz_buzz2(IN, R) :-once(int_natural(IN,N)), once(rem(N, 0+1+1+1, 0) -> F=fizz; F=''), once(rem(N, 0+1+1+1+1+1, 0) -> B=buzz; (F\='')->B=''), atom_concat(F,B,R),!. fizz_buzz2(N, N). /** <examples> ?- fizz_buzz2(6,X). ?- fizz_buzz2(67,X). ?- fizz_buzz2(30,X). */