python使用篩選法計算小于給定數字的所有素數
更新時間:2018年03月19日 14:16:23 作者:董付國
這篇文章主要為大家詳細介紹了python使用篩選法計算小于給定數字的所有素數,具有一定的參考價值,感興趣的小伙伴們可以參考一下
本文實例為大家分享了python計算小于給定數字的所有素數的具體代碼,供大家參考,具體內容如下
代碼思路:首先列出指定范圍內所有候選數字,然后從前往后依次選擇一個數字去除以后面所有數字,能夠被整除的肯定不是素數,把這些數字過濾掉,然后重復這個過程,直到選擇的除數大于最大數字的平方根為止。代碼主要演示內置函數filter()和切片的用法,實際上這個算法的效率并不是很高。
def primes2(maxNumber):
'''篩選法獲取小于maxNumber的所有素數'''
#待判斷整數
lst = list(range(3, maxNumber, 2))
#最大整數的平方根
m = int(maxNumber**0.5)
for index in range(m):
current = lst[index]
#如果當前數字已大于最大整數的平方根,結束判斷
if current > m:
break
#對該位置之后的元素進行過濾
lst[index+1:] = list(
filter(
lambda x: 0 if not x%current else x,
lst[index+1:]))
#2也是素數
return [2] + lst
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
Django 全局的static和templates的使用詳解
這篇文章主要介紹了Django 全局的static和templates的使用詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2019-07-07

