![](/img/trans.png)
[英]Printing the sum of prime divisors of each number in a given range in python
[英]Prime number in a given range in python, problem with range(),
該程序打印 1-20 之間的素數,我試圖掌握該程序中(for 循環,范圍和其他與 for 關聯)的工作
def isPrime(num):
for i in range(2,num):
if num%i==0:
return False
#else:
#return True
else:
return True
#below is driver program
for i in range(1, 20):
if isPrime(i + 1):
print(i + 1, end="\n")
print()
1.在這個程序中,將 num//2 而不是 num in range()
結果是差異(打印 4 作為素數)為什么?
isprime()
時,它甚至不會進入 for 循環,它不會被 if 條件檢查,而是由與 for 關聯的 else 塊輸出 2 作為素數。 為什么?怎么? 我認為由於range(2,num)
,2 作為 num 傳遞。有人能解釋一下嗎??
問題是range(2,n)
是所有數字 2, 3, ..., n-1。 因此,將您的for
循環更改為:
for i in range(2,num+1):
照原樣,當傳入 2 時,范圍將為空。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.