-2
n= int(raw_input("Number? "))
for x in range (2, n+1): 
    for y in range (2, x+1):
    if x < n+1 and x % 2.0 > 0 and x % 3.0 > 0 and x%y > 0:
            print x
            x = x + 1  

こんにちは。入力番号までのすべての素数をリストする SIMPLE python プログラムを作成する必要があります。たとえば、10 を入力すると、2、3、5、7 が生成されます。

シンプルに保ち、def や break などのより高度な関数は使用しないようにします。ネストされたループが優先されます。

上記のコードは機能しません。25 や 91 などの非素数が含まれています。

助けてください!

4

2 に答える 2

2

あなたのコードは、数値が少なくとも 1xで割り切れない場合は素数であると結論付けますが、 allで割り切れないことを確認する必要があります。 y y

yまた、ループの境界を注意深く確認する必要があります。

余談ですが、浮動小数点計算 (例: ) を取り除き、x % 2.0整数演算に固執することをお勧めします。ここではおそらく問題にはなりませんが、大きなワームの缶を開ける可能性があります。

于 2013-03-11T07:32:57.080 に答える
1

あなたはあなたの考えを逆転させなければなりません。あなたのコードは、それがいくつかのyの倍数でない場合、すぐに数値を報告します。代わりに、いくつかのyの倍数になったらすぐに、数値を報告しないようにする必要があります。

n= int(raw_input("Number? "))
for x in range (2, n + 1):
    prime= True
    for y in range (2, x):
        if x % y == 0:
            prime= False
    if prime:
        print x
于 2013-03-11T07:52:32.163 に答える