-1
import math
prime=True
for num in range(1,1000):
     x=math.sqrt(num)
     x=int(x)
     for i in range(2,x):
        if(num%i==0):
            prime=False
        else:
            print(num)

素数を見つけようとしていますが、なぜこれが機能しないのか理解できません。問題を見つけるために平方根を使用しようとしています

4

1 に答える 1

3

印刷する前にすべての数値をテストする必要があります。

 for i in range(2,x):
    if(num%i==0):
        prime=False
        break  # optimisation - see comments
 if prime:
        print(num)

また、各数値の素数を True にリセットします。

for num in range(1,1000):
    prime = True
    x=math.sqrt(num)
于 2013-10-26T19:29:03.567 に答える