Feb-08-2018, 10:04 PM
As part of my algebra package I just wrote a prime number sieve. I hereby place the following code ito the public domain:
def primeNumbers(a): "return a list of prime numbers <= a using a sieve" if a == None or not isinstance(a, int) or a <= 1: return [] sieve = [] idx = 0 while idx <= a: sieve.append(idx) idx += 1 sieve[1] = sieve[0] = None prime = sieve[2] while prime <= a: multiplier = 2 while prime*multiplier <= a: sieve[prime*multiplier] = None multiplier += 1 start = prime+1 while start <= a and sieve[start] == None: start += 1 prime = start #print(str(sieve)) primes = [] idx = 2 while idx < len(sieve): if sieve[idx] != None: primes.append(idx) idx += 1 return tuple(primes)