Prolog 写経記 その 55 lcm/3

(ほぼ) 毎日淡々と Prolog を写経します.元ネタはこちら.

Prologユーティリティライブラリ

Prologユーティリティライブラリ

今日は lcm/3 を写経します.

解説

lcm(N, M, Lcm)NM の最小公倍数を Lcm に具体化する.

らじゃあ.

モード

lcm(+, +, -).

ふむ.

定義

では,こいつの定義を写経しませう.

lcm(N, M, Lcm) :-
	gcd(N, M, Gcd),
	Lcm is (N * M) // Gcd, !.

・・・
そうかぁ,最小公倍数ってこうやって求めるんだぁ.
最大公約数の求め方はよく見るけど,最小公倍数の方は知らなかったよ.
一つ賢くなりました.たぶん今だけ (苦笑).

注記

引数 NM が整数でないときは失敗する.

らじゃあ.

では使用例を写経しませう.

2 ?- lcm(31, 217, L).

L = 217 

Yes
3 ?- lcm(6, 9, Lcm).

Lcm = 18 

Yes
4 ?- lcm(3.1, 15.0, X).

No

結果どうという事もなく...
すげー手抜きっぽいけど手抜きしたいわけじゃなく,そういう内容だからしょうがないのだ.
つまらなくてもひたすら淡々と写経するのだ.
といいつつ,基本的に昨日のこぴぺで所要時間 5 分くらいですが.心より恥じる.
ていうか,昨日これも一緒にやっておけばよかったよ...