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])
尝试制作计算在线课程素数的程序。这个程序永远不会结束,但我在代码中看不到无限循环。
素数是一个只能由一个和它本身分开的数字。
我的逻辑是,如果一个数字可以除以前面的素数,那么它就不是素数。
答案 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)
喝彩!