Python素数计算器

时间:2014-06-16 22:01:27

标签: python list conditional

prime = [2]
while len(prime) <= 1000:
    i=3
    a = 0
    for number in prime:
        testlist= []
        testlist.append(i%number)
    if 0 in testlist:
        i=i+1
    else:
        prime.append(i)
        i=i+1
print(prime[999])

尝试制作计算在线课程素数的程序。这个程序永远不会结束,但我在代码中看不到无限循环。

素数是一个只能由一个和它本身分开的数字。

我的逻辑是,如果一个数字可以除以前面的素数,那么它就不是素数。

2 个答案:

答案 0 :(得分:2)

正如您对问题的评论所指出的,您的代码中存在多个错误。

以下是您的代码版本正常运行。

prime = [2]
i = 3
while len(prime) <= 1000:
    testlist = []
    for number in prime:
        testlist.append(i % number)
    if 0 not in testlist:
        prime.append(i)
    i = i + 1
print prime

答案 1 :(得分:0)

我还没有通过测试,但您可以创建如下方法:

def get_prime_no_upto(number):
  start = 2
  primes = list(range(start,number)).to_a
  for no in range(start,number):
    for num in range(start,no):
      if ( no % num  == 0) and (num != no):
        primes.delete(no)
        break
  primes

可以像

一样使用它
print primeno(100)

喝彩!