Simple prime number generator in Python

前端 未结 26 2271
感情败类
感情败类 2020-11-22 07:16

Could someone please tell me what I\'m doing wrong with this code? It is just printing \'count\' anyway. I just want a very simple prime generator (nothing fancy).

26条回答
  •  南旧
    南旧 (楼主)
    2020-11-22 07:57

    def primes(n): # simple sieve of multiples 
       odds = range(3, n+1, 2)
       sieve = set(sum([list(range(q*q, n+1, q+q)) for q in odds], []))
       return [2] + [p for p in odds if p not in sieve]
    
    >>> primes(50)
    [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47]
    

    To test if a number is prime:

    >>> 541 in primes(541)
    True
    >>> 543 in primes(543)
    False
    

提交回复
热议问题