このディレクトリの索引
http://toro.2ch.net/test/read.cgi/tech/1357748713/397
#  [1] 授業単元:プログラミング 
#  [2] 問題文(含コード&リンク):do-while文を使って、入力させた数値を3で割った余りを表示することを続ける。 
#  もし、3の倍数が入力されたときは"3の倍数"と表示して終了する。 
#  

'do-while文を使って、入力させた数値を3で割った余りを表示することを続ける。もし、3の倍数が入力されたときは"3の倍数"と表示して終了する。' :-
        do(_3で割った余り),
        while(\+(_3で割った余り = 0)).
'do-while文を使って、入力させた数値を3で割った余りを表示することを続ける。もし、3の倍数が入力されたときは"3の倍数"と表示して終了する。'.

do(_3で割った余り) :-
        入力させた数値を(_入力された数値),
        _3で割った余り is _入力された数値 mod 3,
        '3で割った余りを表示する。3の倍数が入力されたときは"3の倍数"と表示して終了する。'(_3で割った余り).

while(P) :-
        call(P),!,fail.
while(_).

入力させた数値を(_入力された数値) :-
        整数を得る('1以上の自然数',_入力された数値 >= 1,_入力された数値).

'3で割った余りを表示する。3の倍数が入力されたときは"3の倍数"と表示して終了する。'(_3で割った余り) :-
        \+(0 = _3で割った余り),
        writef('%t\n',[_3で割ったあまり]),!.
'3で割った余りを表示する。3の倍数が入力されたときは"3の倍数"と表示して終了する。'(0) :-
        write('"3の倍数"').