ふと、電車で小学生(中学生かも?)が、算数(数学?)の問題集を読んでいて、
最小公倍数という文字が。。。
なつかしー。。最小公倍数って聞いたの何年ぶりだろう。。
と言うわけで、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.