このディレクトリの索引
http://toro.2ch.net/test/read.cgi/tech/1339338438/138
#  [1] 授業単元:プログラミング 
#  [2] 問題文:[1] 授業単元:
http://ime.nu/www.fluid.cse.nagoya-u.ac.jp/~ishihara/c/Sec6kadai20.html 
#  
#  2つの自然数aとbの最大公約数gcd(a, b)を求め、それを出力するプログラムを作成せよ。
#  
#  なお、m = a % b としたとき、gcd(a, b) は m≠0 の場合 gcd(b, m) に等しく、 m=0 の場合 b に等しい。
#  
#  2つの自然数aとbを入力させ、a 人から b 人を選ぶ組み合わせ comb(a, b)を求め、それを出力するプログラムを作成せよ。
#  
#  なお、comb(a, b) = comb( a-1, b) + comb( a-1, b-1) であり、 b==0 もしくは b==a のとき comb(a, b) = 1 である。

'2つの自然数aとbの最大公約数gcd(a, b)を求め、それを出力する。なお、m = a % b としたとき、gcd(a, b) は m≠0 の場合 gcd(b, m) に等しく、 m=0 の場合 b に等しい。'(_a,_b,_最大公約数) :-
        gcd(_a,_b,_最大公約数),
        それを出力する(_a,_b,_最大公約数).

gcd(_a,_b,_b) :-
        0 is _a mod _b.
gcd(_a,_b,_最大公約数) :-
        _m is _a mod _b,
        gcd(_b,_m,_最大公約数).

それを出力する(_a,_b,_最大公約数) :-
        writef('%t と %t の最大公約数は %t です。\n',[_a,_b,_最大公約数]).