Python是一門高效、簡單易學(xué)的編程語言,也是學(xué)習(xí)算法和數(shù)據(jù)結(jié)構(gòu)的入門語言之一。在Python中,遞歸求素數(shù)是一道經(jīng)典的算法題目,下面我們來看看如何用Python實現(xiàn)遞歸求素數(shù)。
def is_prime(n): if n<= 1: return False elif n == 2: return True elif n % 2 == 0: return False else: i = 3 while i * i<= n: if n % i == 0: return False i += 2 return True def recursive_prime(n): if n<= 1: return [] elif is_prime(n): return recursive_prime(n-1) + [n] else: return recursive_prime(n-1)
首先,我們定義一個函數(shù)is_prime(n),用于判斷當(dāng)前的數(shù)n是否是素數(shù)。接著,我們定義了一個遞歸求素數(shù)的函數(shù)recursive_prime(n)。其中,當(dāng)n小于等于1時,直接返回一個空列表[];如果n是素數(shù),則將結(jié)果遞歸與n-1的結(jié)果合并;否則遞歸調(diào)用n-1。
最后,我們可以調(diào)用recursive_prime(n),得到1~n中所有素數(shù)的列表。
print(recursive_prime(10)) # [2, 3, 5, 7] print(recursive_prime(20)) # [2, 3, 5, 7, 11, 13, 17, 19] print(recursive_prime(30)) # [2, 3, 5, 7, 11, 13, 17, 19, 23, 29]
通過上述代碼,我們可以輸出1~n的素數(shù)列表。
上一篇python 掃描線算法
下一篇vue form重置