現在、問題の解決に挑戦しています。1から20までのすべての数値で均等に割り切れる最小の正の数値は何ですか? '1から20の間のすべての整数で割り切れる最小の数を見つけるコードを最適化する
これまでのところ、私は動作すると思われるものをコーディングしましたが、非常に長い時間がかかります。さらに、私は膨大な量の 'と'の文をifに入れなければなりません。これは非常に効率的でもプロフェッショナルでもないようです。
このコードを最適化し、おそらくそれをもっと細かくするために、私は何ができますか?
number = 1
result = 0
def divide(candidate):
if candidate % 2 == 0 and candidate % 3 == 0 and candidate % 4 == 0 and candidate % 5 == 0 and candidate % 6 == 0 and candidate % 7 == 0 and candidate % 8 == 0 and candidate % 9 == 0 and candidate % 10 == 0 and candidate % 11 == 0 and candidate % 12 == 0 and candidate % 13 == 0 and candidate % 14 == 0 and candidate % 15 == 0 and candidate % 16 == 0 and candidate % 17 == 0 and candidate % 18 == 0 and candidate % 19 == 0 and candidate % 20 == 0:
global result
result = 1
return 1
else:
global number
result = 0
number = number + 1
return 0
while result == 0:
divide(number)
print "The lowest number divisible by all integers between 1-20 is:", number
だけ明確にする、これは宿題ではない、私は、Python自身の自己教育だとその一環として、いくつかのプロジェクト・オイラーの問題をしようとしています。
この宿題はありますか?ヒント:本当に1と20の間のすべての数値で割り切れをチェックする必要がありますか?数字が2と3で割り切れる場合、1と20の間の他の数字はどれですか? –
これは宿題ではなく、私は自分の学者の外でPythonを自己教えるだけです。そして良い点、よかった! – c3ntury
あなたは "最小公倍数"のためのグーグルに興味があるかもしれません。 – DSM