このディレクトリの索引
#  出題場所 :: http://toro.2ch.net/test/read.cgi/tech/1357191974/789
#  お題:1000以下の自然数で各桁がすべて奇数のものを求める。 
#  例 
#  121 -> ng  //偶数の桁がある 
#  357 -> ok 
# 
# 

'1000以下の自然数で各桁がすべて奇数のものを求める。'(_1000以下の自然数で各桁がすべて奇数のもの) :-
        '1000以下の自然数で'(_1000以下の自然数),
        '各桁がすべて奇数のものを求める。'(_1000以下の自然数,_1000以下の自然数で各桁がすべて奇数のもの).

'1000以下の自然数で'(_1000以下の自然数) :-
        between(1,1000,_1000以下の自然数).

'各桁がすべて奇数のものを求める。'(_整数,_整数で各桁がすべて奇数のもの) :-
        forall(各桁が(_整数,_各桁),奇数(_各桁)),
        _整数 = _整数で各桁がすべて奇数のもの.

各桁が(_整数,_各桁) :-
        _整数 > 0,
        _各桁 is _整数 mod 10.
各桁が(_整数,_各桁) :-
        _整数 > 0,
        _整数_1 is _整数 // 10,
        各桁が(_整数_1,_各桁).

奇数(_各桁) :-
        1 is _各桁 mod 2.