python:使用特定列表元素

时间:2016-11-20 11:05:45

标签: python list append

我是python的新手,我想创建一个计算素数的程序。为了提高效率,我需要保存素数并使用它们来计算新的素数。我简化了这段代码,因为其他部分与问题无关。

之前我使用过java脚本,我想要这个表达式:

primnumb = [1,3,5,7,11 ... ]

if (number % primnumb[i]) != 0:
primnumb.append(number)

问题是我无法用“primnumb [i]”给我的数字来计算。

我一直在寻找,但

for i in primnumb

对我来说没有多大意义,因为我无法从列表中获得一个特定的元素。

感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

您可以使用一些素数初始化列表然后 检查其他人。 我已经用2,3,5和7初始化了素数列表,因此我从8开始了该范围。

代码:

primnumbers = [2,3,5,7]

for i in range (8,100):

    flag = True

    for items in primnumbers:

        if i % items == 0:

            flag = False

    if (flag):

        primnumbers.append(i)

print primnumbers

答案 1 :(得分:0)

假设您希望以有效的方式将素数提高到N.

我正在使用sieve来计算素数,如下所示:

import math
N = 100
flag = [0]*(N+1)
# tells whether a number is prime or not, like flag[i]=0 means i is prime other wise not
primes = []
#list of prime numbers is primes

for i in range(2, int(math.sqrt(N))+1): 
    if( flag[i] == 0 ): # means i number is prime
       for j in range(2*i, N+1, i):
          flag[j] = 1  # sets multiple of i as non prime
for i in range(2, N+1):
    if( flag[i] == 0):
       primes.append(i)

print primes