素数判定2

10から25までの数字がそれぞれ素数であるか判定します.

def prime(n):

        for d in range(2, n):
            if n % d == 0:
                return 0
        return n


for n in range(10,25):
    print('{0} is '.format(n) + ('a ' if prime(n)  else"not " )+ 'Prime Number' )

実行結果は,

10 is not Prime Number
11 is a Prime Number
12 is not Prime Number
13 is a Prime Number
14 is not Prime Number
15 is not Prime Number
16 is not Prime Number
17 is a Prime Number
18 is not Prime Number
19 is a Prime Number
20 is not Prime Number
21 is not Prime Number
22 is not Prime Number
23 is a Prime Number
24 is not Prime Number

以前の素数判定のプログラムを参考にしました.

次に素数をリスト化して返すプログラムです.

list=[]#空リストの作成
def prime(n):

        for d in range(2, n):
            if n % d == 0:
                return 0
        list.append(n)#素数の時(range(2,n)の範囲で割り切れない時)にリストに追加
        return n


for n in range(10,25):
    print('{0} is '.format(n) + ('a ' if prime(n)  else"not " )+ 'Prime Number' )
    if n ==24:#nが最後の時
        print list
        print len(list)

実行結果は,

10 is not Prime Number
11 is a Prime Number
12 is not Prime Number
13 is a Prime Number
14 is not Prime Number
15 is not Prime Number
16 is not Prime Number
17 is a Prime Number
18 is not Prime Number
19 is a Prime Number
20 is not Prime Number
21 is not Prime Number
22 is not Prime Number
23 is a Prime Number
24 is not Prime Number
[11, 13, 17, 19, 23]
5

となります.