def?prime(n):
創(chuàng)新互聯(lián)堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站建設(shè)、成都網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的武平網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
if?n=2:
return?[]
result=[False,False]+[True]*(n-2)
for?i?in?range(len(result)):
if?result[i]==True:
for?j?in?range(2*i,len(result),i):
result[j]=False
return?[i?for?i?in?range(len(result))?if?result[i]==True]
def?bi_search(prime,primelist,start,end):
if?startend?:
return?-1
mid=(start+end)//2
if?primelist[mid]==prime:
return?mid
elif?primelist[mid]prime:????????????????
end=mid-1
else:
start=mid+1
return?bi_search(prime,primelist,start,end)
if?__name__=='__main__':
n=int(raw_input())
primelist=prime(n)
num=raw_input()
while?num:
num=int(num)
index=bi_search(num,primelist,0,len(primelist)-1)
print(index)
num=raw_input()
python中遇到不明白的地方,可以試試help
這里要查看find的作用,可以鍵入help(str.find),然后得到提示如下:
Help?on?method_descriptor:
find(...)
S.find(sub[,?start[,?end]])?-?int
Return?the?lowest?index?in?S?where?substring?sub?is?found,
such?that?sub?is?contained?within?S[start:end].??Optional
arguments?start?and?end?are?interpreted?as?in?slice?notation.
Return?-1?on?failure.
解釋要點(diǎn)大致如下:
find()方法檢測(cè)字符串S中是否包含子字符串sub,如果指定start(開始) 和 end(結(jié)束)范圍,則檢查是否包含在指定范圍內(nèi),如果包含子字符串返回開始的索引值(如果包含多個(gè)字串,只返回最左邊出現(xiàn)的索引值),查找失敗返回-1。以本題為例:
s="abcd1234"
s.find("cd"),在字符串s中查找字串"cd"第一次出現(xiàn)時(shí)s中的索引值,因?yàn)樗饕龔?開始,所以結(jié)果為2,注意s中出現(xiàn)多次cd的情況,例如:
s="abcd1234cd"
s.find("cd")的結(jié)果依然是2,找不到時(shí)返回-1,比如:
s="1234"
s.find("cd")的結(jié)果為-1
Pos()功能在一個(gè)字符串中查找所包含的另一個(gè)字符串的起始位置。語(yǔ)法Pos ( string1, string2 {, start } )
參數(shù)string1:string類型,指定要從中查找子串string2的字符串string2:string類型,指定要在string1中查找的字符串start:long類型,可選項(xiàng),指定從string1的第幾個(gè)字符開始查找。缺省值為1返回值Long。函數(shù)執(zhí)行成功時(shí)返回在start位置后string2在string1中第一次出現(xiàn)的起始位置。如果在string1中按指定要求未找到string2、或start的值超過(guò)了string1的長(zhǎng)度,那么Pos()函數(shù)返回0。如果任何參數(shù)的值為NULL,Pos()函數(shù)返回NULL。用法Pos()函數(shù)在字符串查找時(shí)區(qū)分大小寫,因此,"aa"不匹配"AA"。
拓展資料:
公式的運(yùn)用
一、數(shù)字處理
1、取絕對(duì)值函數(shù)
公式:=ABS(數(shù)字)
2、取整函數(shù)
公式:=INT(數(shù)字)
3、四舍五入函數(shù)
公式:=ROUND(數(shù)字,小數(shù)位數(shù))
二、判斷公式
1、如果計(jì)算的結(jié)果值錯(cuò)誤那么顯示為空
公式:=IFERROR(數(shù)字/數(shù)字,)
說(shuō)明:如果計(jì)算的結(jié)果錯(cuò)誤則顯示為空,否則正常顯示。
2、IF語(yǔ)句的多條件判定及返回值
公式:IF(AND(單元格(邏輯運(yùn)算符)數(shù)值,指定單元格=返回值1),返回值2,)
說(shuō)明:所有條件同時(shí)成立時(shí)用AND,任一個(gè)成立用OR函數(shù)。
三、常用的統(tǒng)計(jì)公式
1、統(tǒng)計(jì)在兩個(gè)表格中相同的內(nèi)容
公式:B2=COUNTIF(數(shù)據(jù)源:位置,指定的,目標(biāo)位置)
說(shuō)明:如果返回值大于0說(shuō)明在另一個(gè)表中存在,0則不存在。
如果,在此示例中所用到的公式為:B2=COUNTIF(Sheet15!A:A,A2)
2、統(tǒng)計(jì)不重復(fù)的總數(shù)據(jù)
公式:C2=SUMPRODUCT(1/COUNTIF(A2:A8,A2:A8))
說(shuō)明:用COUNTIF函數(shù)統(tǒng)計(jì)出源數(shù)據(jù)中每人的出現(xiàn)次數(shù),并用1除的方式把變成分?jǐn)?shù),最后再相加。
四、數(shù)據(jù)求和公式
1、隔列求和的應(yīng)用
公式:H3=SUMIF($A$2:$G$2,H$2,A3:G3)或=SUMPRODUCT((MOD(COLUMN(B3:G3),2)=0)*B3:G3)
說(shuō)明:如果在標(biāo)題行中沒有規(guī)則就可以用第2個(gè)公式
2、單條件應(yīng)用之求和
公式:F2=SUMIF(A:A,C:C)
說(shuō)明:這是SUMIF函數(shù)的最基礎(chǔ)的用法
五、查找與引用公式
1、單條件查找
說(shuō)明:VLOOKUP是excel中最常用的查找方式
六、字符串處理公式
1、多單元格字符串的合并
說(shuō)明:Phonetic函數(shù)只能合并字符型數(shù)據(jù),不能合并數(shù)值。
2、截取結(jié)果3位之外的部分
說(shuō)明:LEN計(jì)算總長(zhǎng)度,LEFT從左邊截總長(zhǎng)度-3個(gè)。