Source code for prime_numbers

#!/usr/bin/env python
# Copyright (C) 2011 Abhinav Jauhri
# This is free software, licensed under the Lesser Affero General
# Public License, available in the accompanying LICENSE.rtf file. 

__all__ = ['rwh']

[docs]def rwh(n): """ Prints prime numbers <= n Usage: >>> n = 11 >>> prime_numbers = rwh(n) >>> print prime_numbers [2, 3, 5, 7, 11] :param n: limit :type n: int :return: Prime numbers <= n :rtype: list """ if n is 1: return [] n = n+1 sieve = [True] * (n/2) for i in xrange(3,int(n**0.5)+1,2): if sieve[i/2]: sieve[i*i/2::i] = [False] * ((n-i*i-1)/(2*i)+1) return [2] + [2*i+1 for i in xrange(1,n/2) if sieve[i]]