main:-
fact(4,F),
fact(0, 1).
fact(N, F) :-
N > 0, /* N > 0 をチェック */
N1
is N
-1, /* N-1 を N1 に求める */ fact(N1, F1), /* N1! を F1 に求める */
F
is N
*F1
. /* F は N*F1 とする */
bWFpbjotCglmYWN0KDQsRiksCgloYWx0LgoKZmFjdCgwLCAxKS4KZmFjdChOLCBGKSA6LQogICAgTiA+IDAsICAgICAgICAgICAgICAgICAgICAvKiBOID4gMCDjgpLjg4Hjgqfjg4Pjgq8gKi8KICAgIE4xIGlzIE4tMSwgICAgICAgICAgICAgICAgLyogTi0xIOOCkiBOMSDjgavmsYLjgoHjgosgKi8KICAgIGZhY3QoTjEsIEYxKSwgICAgICAgICAgICAgLyogTjEhIOOCkiBGMSDjgavmsYLjgoHjgosgKi8KICAgIEYgaXMgTipGMS4gICAgICAgICAgICAgICAgLyogRiDjga8gTipGMSDjgajjgZnjgosgKi8K