このディレクトリの索引
http://toro.2ch.net/test/read.cgi/tech/1354393458/650
#  
#  81以下の自然数で九九に現れない数を昇順にすべて表示せよ。
#  

'81以下の自然数で九九に現れない数を昇順にすべて表示せよ。' :-
        findall(N,between(1,81,N),L_1),
        '81以下の自然数で九九に現れない数を昇順ですべて'(1,1,L_1,L_2),
        '表示せよ。'(L_2).

'81以下の自然数で九九に現れない数を昇順ですべて'(_n_1,_,L,L) :-
        _n_1 > 9,!.
'81以下の自然数で九九に現れない数を昇順ですべて'(_n_1,_n_2,L_1,L) :-
        _n_2 > 9,
        _n_1_2 is _n_1 + 1,
        '81以下の自然数で九九に現れない数を昇順ですべて'(_n_1_2,1,L_1,L).
'81以下の自然数で九九に現れない数を昇順ですべて'(_n_1,_n_2,L_1,L_2) :-
        _n_3 is _n_1 * _n_2,
        空白に置換(_n_3,L_1,L_2),
        _n_2_2 is _n_2 + 1,
        '81以下の自然数で九九に現れない数を'(_n_1,_n_2_2,L_3,L).

空白に置換(N,L_1,L_2) :-
        append(L0,[N|R],L_1),
        append(L0,[' '|R],L_2).

表示せよ(L) :-
        atomic_list_concat(L,_表示文字列),
        writef('%t\n',[_表示文字列]).