素?cái)?shù)是編程中經(jīng)常需要用到的。
作為學(xué)習(xí)Python的示例,下面是一個(gè)高效求解一個(gè)范圍內(nèi)的素?cái)?shù)的程序,不需要使用除法或者求模運(yùn)算。
#coding:utf-8 #設(shè)置python文件的編碼為utf-8,這樣就可以寫入中文注釋 def primeRange(n): myArray=[1 for x in range(n+1)] ##列表解析,生成長度為(n+1)的列表,每個(gè)數(shù)值都為1 myArray[0]=0 myArray[1]=0 startPos=2 while startPos <= n: if myArray[startPos]==1: key=2 resultPos = startPos * key #可知startPos的整數(shù)倍都不是素?cái)?shù),設(shè)置startPos的整數(shù)倍的位置為0表示非素?cái)?shù) while resultPos <= n: myArray[resultPos] =0 key += 1 resultPos = startPos *key startPos += 1 resultList=[] ##將最終的素?cái)?shù)保存在resultList列表返回 startPos=0 while startPos <= n: if myArray[startPos] == 1: resultList.append(startPos) startPos += 1 return resultList numString=raw_input("Input the Range(>3):") numInt=int(numString) if numInt <= 3: print "The Number Need to be greater than 3" else: primeResult=primeRange(numInt) print "The Result is:",primeResult
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
