このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/tech/1267796762/657
#  【 課題 】(1)0から100までの間で、3の倍数と、 3がつく数字を判定し、表示するプログラム 
#  【 形態 】http://ime.nu/www.javadrive.jp/install/jdk/で設定したのですが1でしょうか…  
#  【 期限 】12月16日です  
#  【 Ver  】1.6.0_22  
#  【 補足 】ぎりぎりで丸投げですがよろしくお願いします! 
# 
# 

'0から100までの間で、3の倍数と、3がつく数字を判定し、表示する' :-
        for(0,N,100),
        '0から100までの間で、3の倍数と、3がつく数字を判定し'(N,X,Y),
        表示する(N,X,Y),
        N = 100.

'0から100までの間で、3の倍数と、3がつく数字を判定し'(N,X,Y) :-
        atom(X),
        atom(Y),!.
'0から100までの間で、3の倍数と、3がつく数字を判定し'(N,X,Y) :-
        var(X),
        '3の倍数'(N),
        '0から100までの間で、3の倍数と、3がつく数字を判定し'(N,真,Y),!.
'0から100までの間で、3の倍数と、3がつく数字を判定し'(N,X,Y) :-
        var(X),
        \+('3の倍数'(N)),
        '0から100までの間で、3の倍数と、3がつく数字を判定し'(N,僞,Y),!.
'0から100までの間で、3の倍数と、3がつく数字を判定し'(N,X,Y) :-
        var(Y),
        '3がつく数字'(N),
        '0から100までの間で、3の倍数と、3がつく数字を判定し'(N,X,真),!.
'0から100までの間で、3の倍数と、3がつく数字を判定し'(N,X,Y) :-
        var(Y),
        \+('3がつく数字'(N)),
        '0から100までの間で、3の倍数と、3がつく数字を判定し'(N,X,僞),!.

'3の倍数'(N) :-
        0 is N mod 3.

'3がつく数字'(N) :-
        number_chars(N,Chars),
        append(_,['3'|_],Chars).

表示する(N,真,真) :-
        write_formatted('%tは3の倍数かつ3がつく数字です\n',[N]),!.
表示する(N,真,僞) :-
        write_formatted('%tは3の倍数です\n',[N]),!.
表示する(N,僞,真) :-
        write_formatted('%tは3のつく数字です\n',[N]),!.
表示する(N,僞,僞) :- !.