求100以?xún)?nèi)的素?cái)?shù)python函數(shù):
創(chuàng)新互聯(lián)是工信部頒發(fā)資質(zhì)IDC服務(wù)器商,為用戶(hù)提供優(yōu)質(zhì)的眉山服務(wù)器托管服務(wù)
l = []
for x in range(100):
#判斷如果x是素?cái)?shù),則打印,如果不是素?cái)?shù)就跳過(guò)
if x 2:
continue
for i in range(2,x):
if x % i == 0:
break
else:
l.append(x)
print(l)
not 0表示非0 返回真,0返回假
print reduce(
lambda l,y: #遞減的操作函數(shù)
(not 0 in map(lambda x:y % x, l)) and (l+[y]) or l, #l是一個(gè)列表[], 結(jié)果l中后加入的數(shù)不能被前數(shù)整除,被整除則不添加后數(shù)
xrange(2,1000), #范圍[2,1000)
[] )
過(guò)程是:
測(cè)試到6, 就把6依次整除之前的l=[2,3,5] ,除2余0,就放棄6。l仍是[2,3,5]
測(cè)試到7, 就把7依次整除之前的l=[2,3,5] ,除2都不余0,加入6。l變成[2,3,5,7]
最后得到一個(gè)純素?cái)?shù)的列表[];
1、示例代碼
import math
def isPreme(smk):
i = 2
for i in range(2, smk):
j = 2
for j in range(2, int(math.sqrt(i)+1)):
if (i % j == 0):
break
else:
print('%s是素?cái)?shù)' % i)
isPreme(20)
2、示例結(jié)果
2是素?cái)?shù)
3是素?cái)?shù)
5是素?cái)?shù)
7是素?cái)?shù)
11是素?cái)?shù)
13是素?cái)?shù)
17是素?cái)?shù)
19是素?cái)?shù)
1、定義判斷素?cái)?shù)的函數(shù)isPrime
import math
def isPrime(num):
sqt = int(math.sqrt(num))
for i in range(2, sqt + 1):
if num % i == 0:
return False
return True
2、調(diào)用函數(shù)并打印結(jié)果
a = int(input("請(qǐng)輸入一個(gè)數(shù)字:"))
if isPrime(a):
print(a)
else:
print("不是素?cái)?shù)")
3、驗(yàn)證結(jié)果
(1)輸入的是素?cái)?shù)
請(qǐng)輸入一個(gè)數(shù)字:3
3
(2)輸入的不是素?cái)?shù)
請(qǐng)輸入一個(gè)數(shù)字:12
不是素?cái)?shù)
具體步驟如下:
1、打開(kāi)pycharm,點(diǎn)擊file,點(diǎn)擊new,新建一個(gè)空白的pyrthon文件:
2、這里開(kāi)始編寫(xiě)判斷素?cái)?shù)的代碼,判斷素?cái)?shù)的上限最準(zhǔn)確的應(yīng)該使用平方根取整加一,此處用到兩層循環(huán),第一層遍歷0到100的數(shù),第二層循環(huán)判斷滿(mǎ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)行編寫(xiě)好的python文件,在下方的控制臺(tái)就可以看見(jiàn)輸出后結(jié)果: