[英]My python Prime Number Finder doesn't work
我的代碼是:
currentNum = 0
divisible = True
prime = 0
counter = 1
counter2 = 1
counter3 = 0
counter4 = 0
while not counter == 10:
while not counter2 == counter:
currentNum = counter / counter2
while not counter3 == counter:
if currentNum == counter3:
counter4 = counter4 + 1
if counter4 == 1:
divisible = True
counter4 = 0
else:
divisible = False
prime = prime + 1
counter4 = 0
counter3 = 0
counter2 = 1
counter = counter + 1
print(prime)
但出於某種原因,每當我嘗試使用它時,它只會顯示0.5
。
首先 0 和 1 不是素數,所以我們必須注意這一點。 2 也是素數,所以我們也必須注意這一點。 現在離群素數已經出來了,我們可以專注於正常的素數。
一個素數只能被1和它本身整除。 因此,我們必須列出一個列表,並確保我們的輸入不能被該列表中的任何數字整除。 偶數也不在比賽范圍內,因為它們可以被 2 整除。
首先,我創建了一個函數來檢查每個數字的輸入,直到數字,看看它是否可以被其他數字整除。 然后我檢查數字是否為偶數(num%2 是檢查某物是否為偶數的好方法)或者數字是否可以除以任何其他數字。
看看我如何將偶數檢查放在第一位以節省時間,如果數字是偶數,我們不必檢查列表中的所有數字,我們可以直接返回 false 而無需遍歷整個列表。
def is_prime(num):
if num < 0 or num in [0,1]:
return False
elif num == 2:
return True
def prime_range_check():
for number in range(2,num):
if num%number == 0:
return False
if num % 2 == 0 or prime_range_check() == False:
return False
return True
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.