[英]How to determine prime number using recursion with single parameter Python
我正在嘗試創建一個函數來確定一個數字是否為質數。 但是,我只能在函數中使用一個參數。 這是我到目前為止所擁有的,但我不確定如何進行遞歸部分以使其返回正確的值。
問題是“寫一個遞歸函數“IsPrime(x)”來判斷x(一個正整數)是否是素數,如果是素數,則返回True;否則返回False。基本思想是對於所有x >= 3,如果x不能被任何小於或等於sqrt(x)的素數整除,則它是素數。同樣,不要使用內置的Python函數。而是編寫自己的代碼來實現它。”
def IsPrime(x):
if x == 1:
return False
elif x == 2:
return True
else:
return IsPrime(math.floor(math.sqrt(x)))
這當然不是查找素數的最有效方法,但可以通過將您在問題中描述的“基本思想”轉換為算法來使用遞歸來完成:
import math
def IsPrime(x):
if x == 1:
return False
if x == 2:
return True
for i in range(2, math.floor(math.sqrt(x)) + 1):
if IsPrime(i):
if x % i == 0:
return False
return True
請注意,無論何時到達return
語句,函數的執行都會終止。 例如,這允許我們省略顯式的else
語句。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.