- 599 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 10:01:52 ]
- >>598
% Prolog t598 :- write('最大公約数を求めます。一行にひとつ整数を入力してください : '), get_line(Line1),atom_to_terms(Line1,N1,_), get_line(Line2),atom_to_terms(Line2,N2,_), appendを使って最大公約数を求める(N1,N2,X), write_formatted('%tと%tの最大公約数は%tです\n',[N1,N2,X]). appendを使って最大公約数を求める(N1,N2,X) :- length(L1,N1), length(L2,N2), 最大公約数(L1,L2,[_],[_],LX), length(LX,X). appendを使って最大公約数を求める(L1,L2,L,X,X) :- not((append(L,_,L1),append(L,_,L2))),!. appendを使って最大公約数を求める(L1,L2,L,_,X) :- 割り切れる(L1,L), 割り切れる(L2,L), appendを使って最大公約数を求める(L1,L2,[_|L],L,X). appendを使って最大公約数を求める(L1,L2,L,Y,X) :- appendを使って最大公約数を求める(L1,L2,[_|L],Y,X). 割り切れる([],_) :- !. 割り切れる(L,DL) :- append(DL,L3,L), 割り切れる(L3,DL).
|

|