364 http://inventwithpython.com/hacking
Email questions to the author: [email protected]
Returns True if num is a prime number, otherwise False.
Note: Generally, isPrime() is slower than primeSieve().
all numbers less than 2 are not prime
- if num < 2:
- return False
see if num is divisible by any number up to the square root of num
- for i in range(2, int(math.sqrt(num)) + 1):
- if num % i == 0:
- return False
- return True
- def primeSieve(sieveSize):
Returns a list of prime numbers calculated using
the Sieve of Eratosthenes algorithm.
- sieve = [True] * sieveSize
- sieve[0] = False # zero and one are not prime numbers
- sieve[1] = False
3 0.
create the sieve
- for i in range(2, int(math.sqrt(sieveSize)) + 1):
- pointer = i * 2
- while pointer < sieveSize:
- sieve[pointer] = False
- pointer += i
compile the list of primes
- primes = []
- for i in range(sieveSize):
- if sieve[i] == True:
- primes.append(i)
- return primes
How the Program Works..........................................................................................................................................
primeSieve.py
Prime Number Sieve
http://inventwithpython.com/hacking (BSD Licensed)
- import math