簡體   English   中英

Python素數計算器

[英]Python prime number calculator

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])

嘗試制作一個計算在線課程素數的程序。 這個程序永遠不會結束,但我在我的代碼中看不到無限循環。

質數是只能被一個和它本身整除的數。

我的邏輯是,如果一個數可以被它前面的素數除,那么它就不是素數。

正如對您的問題的評論所指出的那樣,您的代碼中有幾個錯誤。

這是您的代碼工作正常的版本。

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

我還沒有測試過,但您可以創建如下方法:

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)

干杯!

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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM