2017-04-20 8 views
0

文字列を変更するためのプログラムを書くことになっていますが、その位置番号が素数ではありませんが、最初の位置の作成方法、例えば位置2 、プライム、および2で割り切れる位置の残りの部分をNに変換します。以下は私が現在持っているもので、私はintエラーです。誰かが私を助けることができれば、本当に感謝します。あなたは範囲が整数ではなく、発電機がかかるため、おそらく、エラーを取得する代わりに、for i in n_listまたはfor i in range(len(n_list))を試し、範囲内の素数を見つけるpython

while True: 
    number = int(input("Enter a number greater than 10: ")) 
    if number < 10: 
     print("Invalid input. Try again") 
    else: 
     break 

n_list = ["P"] * (number + 1) 
n_list[0] = "N" 
n_list[1] = "N" 

for i in range(n_list): 
    if int(n_list[i]) % 2 == 0: 
     n_list[i] = "N" 

print(n_list) 
+0

私はあなたの宿題をそのまま貼り付けていないと、控えめにすることは少ないと思います。その後、OPは実際には自分のコードと、そのスタックされた場所の説明を提供します。 – timgeb

+0

(ただし、「エラーが発生しました」というエラーメッセージは受け入れられません) – timgeb

答えて

1

まずありがとうございます。問題のアプローチについては、2からnにループする必要はありません。よりスマートな方法があります。しかし、私たちはあなたのためにその問題を解決するためにここにはいません。それで、あなたに最高の運がありました!

PS: もう少し指導 Sieve of Eratosthenes

EDIT: 私が参照してるの誤差がある

TypeError: 'list' object cannot be interpreted as an integer 
0

私は、あなたの宿題の答えを与えたくないけど私は手伝っていきたいので、少しお手伝いします。

私が提供しているものに2つの問題があります。まず、あなたの範囲に間違った変数を使用しています。あなたはリストではなく、数字を求めます。

第2に、「P」が均等に割り切れるかどうか比較できません。2.番号があるかどうかだけを確認できます。

これが役立ち、幸運を祈っています。

編集:明確にするために、より多くの問題がありますが、これらの2つはエラーになります。

関連する問題