质数问题

2018-12-10  本文已影响0人  火头陀

问题

请判断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)
上一篇 下一篇

猜你喜欢

热点阅读