问题
请判断101-200之间有多少个素数,且输出所有的素数。
问题分析
素数(质数)在大于1的自然数中,除了1和它本身以外不再有其他因数。
即遍历 2~√n 如无可整除的数,次数即为素数
算法实现
##求质数
#请判断101-200之间有多少个素数,且输出所有的素数。
#算法复杂度: 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)
网友评论