Project Euler 005

問題5
1から20のどれでも割り切れる数を求める。


ようするに、最小公倍数てことでしょ。Gaucheで。

(lcm 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20)

これでは話が展開しないので。

^(1 to: 20) inject: 1 into: [ :tmp :each |
	| gcd next |
	gcd := tmp gcd: each.
	next := gcd >= 1
		ifTrue: [ tmp * (each / gcd) ]
		ifFalse: [ tmp ].
	next
].

というところまで考えて、wikipediaの記述を見るとごちゃごちゃしなくてもいいみたいな。
http://ja.wikipedia.org/wiki/%E6%9C%80%E5%B0%8F%E5%85%AC%E5%80%8D%E6%95%B0

^(1 to: 20) inject: 1 into: [ :tmp :each |
	tmp lcm: each
].

あれー、こんな感じのコードではうまく動かなかったから答えを求めた当初はGauche使ったんじゃなかったかなー。
ま、いいか。