lost and found ( for me ? )

最小公倍数 ( least common multiple )

ふと、電車で小学生(中学生かも?)が、算数(数学?)の問題集を読んでいて、
最小公倍数という文字が。。。

なつかしー。。最小公倍数って聞いたの何年ぶりだろう。。

と言うわけで、python で書いてみました。

ロジックは:

math90さんのブログを引用させていただきました。

http://math90.exblog.jp/323591/

-- ここから

小学校の最小公倍数の求め方は
「大きいほうの数字の倍数が、小さいほうで割り切れる数で一番小さい数」
と言うことになります。

たとえば、18と42 の最小公倍数なら
    42×1=42    42÷18 は割り切れないので   ×
    42×2=84    84÷18 は割り切れないので   ×
    42×3=126   126÷18 は割り切れるので    ○
より、最小公倍数は 126 と探します。

-- ここまで

なるほど。。

んで、python で書くと、こんな感じ~。。かな。

interactive mode で起動し、関数( leastcommon ) を作成

[root@arizona ~]# python
>>> def leastcommon(a,b):
... c = max(a,b)
... d = min(a,b)
... counter = 1
... while 1:
... if ( c * counter ) % d == 0:
... print c * counter
... break
... else:
... counter += 1
...
>>>
>>>

ではテスト。

>>> leastcommon(18,42)
126 ← 18 と 42 の LCM
>>> leastcommon(3439,34283908084)

117902359900876 ← たぶんあってるんだろう。。。

KISSのベストいいなー。名曲だらけ~。ギターで弾いても楽しい~。
Detroit rock city ... You gotta lose your mind in Detroit Rock City
!!

Cheers!

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.