重慶分公司,新征程啟航
為企業(yè)提供網(wǎng)站建設(shè)、域名注冊(cè)、服務(wù)器等服務(wù)
為企業(yè)提供網(wǎng)站建設(shè)、域名注冊(cè)、服務(wù)器等服務(wù)
python求素?cái)?shù):
我們提供的服務(wù)有:網(wǎng)站制作、成都網(wǎng)站建設(shè)、微信公眾號(hào)開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、葉集ssl等。為超過(guò)千家企事業(yè)單位解決了網(wǎng)站和推廣的問(wèn)題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的葉集網(wǎng)站制作公司
def is_prime(m):
"""判斷m是否素?cái)?shù)"""
for i in range(2,int(m**(1/2))+1):
if m % i == 0:
return False
else:
return True
注意事項(xiàng)
定義一個(gè)函數(shù)并使用input進(jìn)行范圍的輸入,同時(shí)將將求得的素?cái)?shù)保存在num數(shù)組中去,便于求得在該范圍內(nèi)素?cái)?shù)的總數(shù)以及對(duì)應(yīng)的具體值,同時(shí),在本程序中并沒(méi)有對(duì)非法輸入的值進(jìn)行過(guò)多的判斷,而主要就是為了實(shí)現(xiàn)功能。
注意在該函數(shù)當(dāng)中,else是與內(nèi)循環(huán)中的for搭配使用的,如果內(nèi)循環(huán)是由break而終止的,那么else語(yǔ)句是不會(huì)被執(zhí)行的。
下面是一個(gè) Python 程序,可以實(shí)現(xiàn)函數(shù) Prme(n),接收正整數(shù) n 作為參數(shù),判斷該正整數(shù)是否為素?cái)?shù)。
在這個(gè)程序中,我們定義了函數(shù) Prme(n),接收一個(gè)正整數(shù) n 作為參數(shù)。首先,我們判斷 n 是否小于 2,如果是,則返回 False。然后,我們判斷 n 是否等于 2,如果是,則返回 True。最后,我們使用一個(gè) for 循環(huán)從 2 到 n-1 枚舉所有的數(shù),如果 n 能夠被 i 整除,則返回 False。否則,返回 True。
具體步驟如下:
1、打開pycharm,點(diǎn)擊file,點(diǎn)擊new,新建一個(gè)空白的pyrthon文件:
2、這里開始編寫判斷素?cái)?shù)的代碼,判斷素?cái)?shù)的上限最準(zhǔn)確的應(yīng)該使用平方根取整加一,此處用到兩層循環(huán),第一層遍歷0到100的數(shù),第二層循環(huán)判斷滿足條件的素?cái)?shù)。這里有一個(gè)else要注意是和for對(duì)齊而不是if對(duì)齊,如果和if對(duì)齊只要不能被2整除就會(huì)被添加到列表中了,而且會(huì)多次添加:
3、右鍵點(diǎn)擊鼠標(biāo),點(diǎn)擊“run?demo”,運(yùn)行編寫好的python文件,在下方的控制臺(tái)就可以看見輸出后結(jié)果:
def is_prime(m):
"""判斷m是否素?cái)?shù)"""
for i in range(2,int(m**(1/2))+1):
if m % i == 0:
return False
else:
return True
# 求100內(nèi)所有素?cái)?shù)
for i in range(2, 100):
if is_prime(i):
print(i)
程序縮進(jìn)如圖所示
代碼如下,縮進(jìn)請(qǐng)參考截圖:
def is_prime(n):
if n == 1:
return False
for i in range(2, int(n ** 0.5) + 1):
if n % i == 0:
return False
return True
prime = [ i for i in range(1,1001) if is_prime(i) ]
for i in range(2,1001):
if i % 2 == 0:
for x in prime:
if i - x in prime:
print('{} + {} = {}'.format(i-x,x,i))
break
輸出節(jié)選:
可以使用Python的for循環(huán)和if判斷語(yǔ)句來(lái)實(shí)現(xiàn):
for i in range(2,101):
flag = True
for j in range(2,i):
if i % j == 0:
flag = False
break
if flag:
print(i)
拓展:除了使用for循環(huán)和if判斷語(yǔ)句,還可以使用Python的itertools模塊中的compress函數(shù)來(lái)獲取100以內(nèi)的素?cái)?shù):
import itertools
from itertools import compress
primes = [i for i in range(2, 101) if not 0 in map(lambda x: i % x, range(2, i))]
list(compress(range(2, 101), primes))