美文网首页
质数问题

质数问题

作者: 火头陀 | 来源:发表于2018-12-10 20:57 被阅读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)
    

    相关文章

      网友评论

          本文标题:质数问题

          本文链接:https://www.haomeiwen.com/subject/mgadhqtx.html