簡體   English   中英

我想打印給定范圍內的素數列表,我的代碼有什么問題?

[英]I want to print the list of prime numbers in a given range, what is wrong with my code?

我正在嘗試打印給定范圍內的素數列表。 我知道我們可以直接在 for 循環中使用 print 語句來打印每個素數但是,我想打印整個素數列表。 我的代碼有什么問題?

def prime():
    upper_bound = int(input())

    while True:
        lower_bound = int(input())
        if lower_bound <= 2:
            print("Please enter number greater than 2")
        else:
            break
    
    prime_num = [2]
    
    i = lower_bound
   
    while i <= upper_bound+1:
        for k in range(2,i):
            if (i%k) == 0:
                i = i + 1
                break
                
        else:
            prime_num.append(i)
            i = i + 1
    
   
    print(prime_num)

你需要調用 prime() function,然后它會打印出數組。

否則,您可以遍歷數組並將每個字符添加到字符串中,這樣您就不會獲得數組格式。

所以:

Result = "";
for x in range(0, len(prime_num)):
    Result += str(prime_num[x]) + " ";
print(Result);

我認為它工作正常,我運行它並給出 output。 只需調用 prime() function。

def prime():
upper_bound = int(input("please enter upper bound"))
while True:
    lower_bound = int(input("please enter lower bound"))
    if lower_bound <=2:
        print("Please enter number greater than 2")
    else:
        break
prime_num = [2]
i = lower_bound
while i <= upper_bound + 1:
    for k in range(2, i):
        if (i % k) == 0:
            i = i + 1
            break
    else:
        prime_num.append(i)
        i = i + 1


prime()

這是 output

請輸入上限20

請輸入下限3

[2、3、5、7、11、13、17、19]

最快的方法:

import sympy
    
print(list(sympy.primerange(0, 1_000_000_000)))

暫無
暫無

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

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