[英]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.