Python練習問題

Chainer Tutorialに記載されている練習問題をやってみたので、結果をメモとして残しておきます。

問2.8 (制御構文)

2以上の整数 p が素数であるとは、「どんな 2 以上 p-1 以下の整数 k に対しても p は k で割り切れない」が成り立つことを指します。素数を小さい順から列挙すると、2357111317, … となります。 チュートリアルで学んだ制御構文である if や for を用いて、2 から 100 からまでに含まれる素数を列挙して下さい。

◆回答

a = [2]
for x in list(range(3, 101)):
    if all([x % y > 0 for y in list(range(2, x))]):
        a.append(x)
print(a)

◆実行結果

[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]