問題
請(qǐng)判斷101-200之間有多少個(gè)素?cái)?shù)亲族,且輸出所有的素?cái)?shù)。
問題分析
素?cái)?shù)(質(zhì)數(shù))在大于1的自然數(shù)中,除了1和它本身以外不再有其他因數(shù)。
即遍歷 2~√n 如無可整除的數(shù),次數(shù)即為素?cái)?shù)
算法實(shí)現(xiàn)
##求質(zhì)數(shù)
#請(qǐng)判斷101-200之間有多少個(gè)素?cái)?shù),且輸出所有的素?cái)?shù)。
#算法復(fù)雜度: O(n(n**0.5))
#[start, end]
def getPrimeNumSequence(start, end):
if start < 2 or (end <= start):
raise Exception, 'params error'
data = []
for number in range(start, end+1):
isPrimeNum = True
for n in range(2, int(number ** 0.5)+1):
if number%n == 0:
isPrimeNum = False
break
if isPrimeNum:
data.append(number)
return data
if __name__ == '__main__':
#print getPrimeNumSequence(101, 200)
print getPrimeNumSequence(2, 10)