[白俊]1978号:少数を探す



質問する



私の最初の提出

n=int(input())
n2=list(map(int, input().split()))
c, no=0,0
for i in n2:
    if i>1:
        for j in range(2,i):
            if (i%j)==0:
                no+=1
        if no==0:
            c+=1
print(c)

私の2回目の提出

n=int(input())
n2=map(int, input().split())
c, no=0,0
for i in n2:
    if i>1:
        for j in range(2,i):
            if i%j==0:
                no+=1
        if no==0:
            c+=1
print(c)
最初とは異なりlistを削除しました.
しかし、やはりエラーが発生しました.

最終提出

n=int(input())
n2=map(int, input().split())
c=0
for i in n2:
    no=0
    if i>1:
        for j in range(2,i):
            if i%j==0:
                no+=1
        if no==0:
            c+=1
print(c)
No変数は繰り返し文で初期化されます.
エラーがn 2に順番にアクセスし、現在アクセスしている数字が少数ではない場合.
Noに1を加え、noをゼロにしないようにして素数を判別します.
ここで間違いを犯した.
1つの数字(ex 3)に近づくと、次の数字では(ex 5)noを0にして小数かどうかを判断しますが、バカのように外でnoを宣言して初期化できません.(結果は、最初の数字を除いてすべての数字が小数ではないことを示しています)