python獲取100以內(nèi)的質(zhì)數(shù)3種方式總結(jié)
1. 質(zhì)數(shù)
質(zhì)數(shù)是只有1和它本身兩個因數(shù)的自然數(shù)(大于1);2是最小的質(zhì)數(shù),也是唯一的偶質(zhì)數(shù);1既不是質(zhì)數(shù),也不是合數(shù)。100以內(nèi)的質(zhì)數(shù)有:2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97,100以內(nèi)的質(zhì)數(shù)共有25個。
2. 方式1:使用嵌套循環(huán),判斷這個數(shù)是否存在除1和它本身外的其他因數(shù)
# 定義一個空列表用于存放100以內(nèi)的質(zhì)數(shù) prime_num = [] # 遍歷獲取2~100之間的整數(shù),外層循環(huán)控制取值 for num in range(2, 101): # 內(nèi)層循環(huán)取因數(shù)(除1和它本身外) for i in range(2, num): # 判斷num是否是質(zhì)數(shù),在2~num-1之間能否找到一個數(shù),能被i整除 if num % i == 0: # 不是質(zhì)數(shù),結(jié)束內(nèi)層循環(huán),判斷下一個數(shù) break # break不執(zhí)行,else執(zhí)行,則num是一個質(zhì)數(shù) else: # 將質(zhì)數(shù)num添加到列表中 prime_num.append(num) print(prime_num)
3. 方式2:假設(shè)法,假設(shè)num是一個質(zhì)數(shù)
prime_num = [] for num in range(2, 101): # 假設(shè)num是一個質(zhì)數(shù) result = True for i in range(2, num): # 判斷成立,num不是一個質(zhì)數(shù) if num % i == 0: result = False # 結(jié)束內(nèi)層循環(huán),判斷下一個數(shù) break # num是質(zhì)數(shù),則添加到列表中 if result: prime_num.append(num) print(prime_num)
4. 方式3:統(tǒng)計num的因數(shù)的個數(shù)
# 統(tǒng)計100以內(nèi)質(zhì)數(shù)的個數(shù) prime_count = 0 prime_num = [] for num in range(2, 101): # 統(tǒng)計因數(shù)的個數(shù) factor_count = 0 for i in range(1, num+1): # 條件成立,因數(shù)的個數(shù)加1 if num % i == 0: factor_count += 1 # 質(zhì)數(shù)只有2個因數(shù),1和它本身 if factor_count == 2: prime_count += 1 prime_num.append(num) print('100以內(nèi)的質(zhì)數(shù)如下:') print(prime_num) print(f'100以內(nèi)有{prime_count}個質(zhì)數(shù)')
圖1 程序運行結(jié)果
5. 封裝一個函數(shù),判斷一個數(shù)是否是質(zhì)數(shù)。
def isprime(num): # 2是最小的質(zhì)數(shù),小于2則不是質(zhì)數(shù) if num < 2: return False else: # 假設(shè)num是一個質(zhì)數(shù) result = True for i in range(2, num): # 條件成立,則num不是質(zhì)數(shù) if num % i == 0: result = False break return result print(isprime(-2024)) print(isprime(5)) print(isprime(2025)) print(isprime(2027))
圖2 程序運行結(jié)果
附:計算小于N的素數(shù)個數(shù)
- 輸入: 10
- 輸出: 4
小于10的素數(shù)共4個:2, 3, 5, 7
from math import sqrt def isPrime(n): for i in range(2,int(sqrt(n))+1): if n%i==0: return False return True def countPrime(N): if N<3: return 0 else: cou = 1 for i in range(3,N,2): if isPrime(i): cou += 1 return cou
print(countPrime(2)) print(countPrime(5)) print(countPrime(100)) print(countPrime(100000)) print(countPrime(10000000))#在n>100000000時達到計算瓶頸
輸出:
0
2
25
9592
664579
總結(jié)
到此這篇關(guān)于python獲取100以內(nèi)的質(zhì)數(shù)3種方式的文章就介紹到這了,更多相關(guān)python獲取100以內(nèi)質(zhì)數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- python實現(xiàn)挑選出來100以內(nèi)的質(zhì)數(shù)
- 使用Python判斷質(zhì)數(shù)(素數(shù))的簡單方法講解
- Python 判斷是否為質(zhì)數(shù)或素數(shù)的實例
- Python編程求質(zhì)數(shù)實例代碼
- python輸出100以內(nèi)的質(zhì)數(shù)與合數(shù)實例代碼
- python求質(zhì)數(shù)的3種方法
- 利用Python計算質(zhì)數(shù)與完全數(shù)的方法實例
- python如何實現(xiàn)質(zhì)數(shù)求和
- python計算質(zhì)數(shù)的6種方法
- python如何求取指定范圍內(nèi)的質(zhì)數(shù)
相關(guān)文章
淺談django model postgres的json字段編碼問題
下面小編就為大家分享一篇淺談django model postgres的json字段編碼問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-01-01集成開發(fā)環(huán)境Pycharm的安裝及模板設(shè)置圖文教程
PyCharm是一種Python的集成開發(fā)環(huán)境,帶有一整套可以幫助用戶在使用Python語言開發(fā)時提高效率的工具,這篇文章主要介紹了集成開發(fā)環(huán)境Pycharm的安裝及模板設(shè)置,需要的朋友可以參考下2022-07-07PyQt5結(jié)合matplotlib繪圖的實現(xiàn)示例
這篇文章主要介紹了PyQt5結(jié)合matplotlib繪圖的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-09-09Pycharm使用matplotlib警告\不能顯示的問題及解決
在PyCharm中使用matplotlib畫圖時遇到警告和圖像顯示問題,通過在代碼中添加`mpl.use('TkAgg')`或`plt.switch_backend('TkAgg')`,可以解決警告并彈出顯示完整的圖像窗口,同時,文章還列舉了matplotlib的其他backend選項,如Qt4Agg、Qt5Agg、WXAgg等2025-02-02Python實現(xiàn)將n個點均勻地分布在球面上的方法
這篇文章主要介紹了Python實現(xiàn)將n個點均勻地分布在球面上的方法,涉及Python繪圖的技巧與相關(guān)數(shù)學函數(shù)的調(diào)用,具有一定參考借鑒價值,需要的朋友可以參考下2015-03-03