Python素数计算器
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])
我正在尝试写一个程序,用来计算质数,这是我在线课程的作业。这个程序一直在运行,但我找不到代码中导致它无限循环的地方。
质数是指只能被1和它自己整除的数字。
我的逻辑是,如果一个数字能被它之前的质数整除,那么它就不是质数。
3 个回答
0
def prime_checker(number):
stop = False
prime = True
n = 2
while stop == False and n < number:
if (number) % n == 0:
prime = False
stop = True
n += 1
if prime == True:
print("It's a prime number.")
elif prime == False:
print("It's not a prime number.")
prime_checker(11)
当然可以!请把你想要翻译的内容发给我,我会帮你用简单易懂的语言解释清楚。
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)
祝好!
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