このディレクトリの索引
http://toro.2ch.net/test/read.cgi/tech/1370255305/785
#  与えられた自然数nを上回る2の冪を返す関数をなるべく最短処理になるように自作してください 
#  宿題じゃないので期限は問いません 
#  例: 
#  n=1 → 1 
#  n=2 → 2 
#  n=3 → 4 
#  n=6 → 8 
#  n=300 → 512 
# 
# 

与えられた自然数nを上回る2の冪を返す(_n,_2の冪) :-
        与えられた自然数nを上回る2の冪を返す(_n,1,_2の冪).

与えられた自然数nを上回る2の冪を返す(0,X,X) :- !.
与えられた自然数nを上回る2の冪を返す(N,X_1,X) :-
        M is N >> 1,
        X_2 is X_1 << 1,
        与えられた自然数nを上回る2の冪を返す(M,X_2,X).