2016-04-02 139 views
-5

私はPythonでエクササイズをしようとしていますが、私は常に固執しています。リストの数字の倍数を削除する - Python

演習:2から10,000までのすべての数値をリストに追加するプログラムを作成します。次に、2の倍数(2ではなく)、3の倍数(3ではなく)などを削除します。 100の倍数。残りの値を印刷します。

def main(): 
    _list_ = [] 
    for i in range(2, 10001): 
     _list_.append(i) 

    multiples = 0 
    multiple = 2 
    while multiples <= 10000: 
     multiples += 2 
     _list_.remove(multiples) 
main() 

これは、2のための唯一のソリューションですが、私は削除せずに、...及び3のように、他人のためにそれをどのように行うのか3、4、5、...?

ありがとうございました!

+0

こんにちはを追加することができます。 [良い質問をするにはどうすればいいですか?](http://stackoverflow.com/help/how-to-ask)と[最小限の、完全で検証可能なサンプルを作成する方法](http ://stackoverflow.com/help/mcve)。 –

+0

リストをセットに変換して戻す方法について読む。 http://www.learnpython.org/en/Sets –

+0

このステップでは、1ステップごとにリストを作成して、この余分なものを取り除くと、これはかなり簡単に見えます: 'print([number in range(2,10001)if all (数値%値または値==範囲内の値の数値(2,101))]) ';-) – Matthias

答えて

0

は同じ結果(素数< 10000) を取得するにははるかに簡単な方法がありますが、あなたがそのコードを使用することを主張する場合は、単純なループ

def main(): 
    _list_ = [] 
    for i in range(2, 10001): 
     _list_.append(i) 

    k=0 
    while k<10000-2:# n starts from 2 
     n = _list_[k] 
     multiple = 2*n 
     while multiple <= 10000: 
      multiple += n 
      _list_.remove(multiple) 
     k = k + 1 
main() 
関連する問題