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