このディレクトリの索引 http://toro.2ch.net/test/read.cgi/tech/1354393458/650 # # 81以下の自然数で九九に現れない数を昇順にすべて表示せよ。 # '81以下の自然数で九九に現れない数を昇順にすべて表示せよ。' :- '81以下の自然数で九九に現れない数を昇順にすべて'(_81以下の自然数で九九に現れない数ならび), '表示せよ。'(_81以下の自然数で九九に現れない数ならび). '81以下の自然数で九九に現れない数を昇順にすべて'(_81以下の自然数で九九に現れない数ならび) :- '81以下の自然数ならび'(_81以下の自然数ならび), 九九に現れる数ならび(_九九に現れる数ならび), '81以下の自然数で九九に現れない数を昇順にすべて'(_81以下の自然数ならび,_九九に現れる数ならび,_81以下の自然数で九九に現れない数ならび). '81以下の自然数ならび'(_81以下の自然数ならび) :- findall(_数,between(1,81,_数),_81以下の自然数ならび). 九九に現れる数ならび(_九九に現れる数ならび) :- findall(_九九,( 九九(_九九)), _九九に現れる数ならび). 九九(_九九) :- between(1,9,_数_1), between(1,9,_数_2), _九九 is _数_1 * _数_2. '81以下の自然数で九九に現れない数を昇順にすべて'([],_,[]) :- !. '81以下の自然数で九九に現れない数を昇順にすべて'([_数|R1],_九九に現れる数ならび,[_数|R3]) :- 九九に現れない数(_数,_九九に現れる数ならび), '81以下の自然数で九九に現れない数を昇順にすべて'(R1,_九九に現れる数ならび,R3),!. '81以下の自然数で九九に現れない数を昇順にすべて'([_|R1],_九九に現れる数ならび,R3) :- '81以下の自然数で九九に現れない数を昇順にすべて'(R1,_九九に現れる数ならび,R3). 九九に現れない数(_数,_九九に現れる数ならび) :- \+(member(_数,_九九に現れる数ならび)). '表示せよ。'(_81以下の自然数で九九に現れない数ならび) :- atomic_list_concat(_81以下の自然数で九九に現れない数ならび,' ',_表示文字列), writef('%t\n',[_表示文字列]).