LoginSignup
1
0

More than 3 years have passed since last update.

0.1ぐらいから始めるProjectEuler@python Problem 5

Last updated at Posted at 2019-07-25

どもども、最近特に何もないとある学生です。
というわけで、5問目書いていきましょう。

Problem_5.py
 #2520 は 1 から 10 の数字の全ての整数で割り切れる数字であり, そのような数字の中では最小の値である.
#では, 1 から 20 までの整数全てで割り切れる数字の中で最小の正の数はいくらになるか.
for a in range(2,3000000000,2):
    flag = "なんかの数字で割り切れた"
    for c in range(3,20):
        if not a % c == 0:
            flag = "割り切れてない"
            break
    if flag == "なんかの数字で割り切れた":
        print(a)
        break

解 232792560
はい、私はこう書きました。

解き方の解説をしていきます。

aはrangeで2から適当に3十億までと行きたいところですが、
1から20までで割り切れる数ということは、確実に偶数であるため1ずつではなく2ずつにすると計算量が半分になります。
flagという関数を作り、割り切れたかどうかの管理をします。
cは1~20ですが、先ほども言ったように偶数確定なので2で割る必要がないので3,20にしています。
最後に割り切れたらflagを書き換えないで最後のif文を実行する感じです。

こんな感じですかねもしわからないことやアドバイス等あればコメントしていただければと思います。
というわけで気が向いたら次も見ていってください。よろしくお願いします。

1
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0