primes.py

#!/usr/bin/env python
#
# Find prime numbers
# Author:  Yotam Medini  [email protected] -- Created: 2006/January/29
#

import sys


def usage_exit(a0, rc):
    sys.stderr.write(
"""
Usage:
  %s <bound>
"""[1:] % a0)
    sys.exit(rc)


def isPrime(n):
    noFactorFound = True  # we did not find a factor yet.
    d = 2
    # It is enough to check divisors until the square-root  of n.
    # Note that          d <= sqrt(n)
    # if-and-only-if     d*d <= n     - which is easier to compute.
    while d*d <= n and noFactorFound:
        noFactorFound = (n % d != 0)
        d = d + 1
    return (n > 1) and noFactorFound


# Begin program
if len(sys.argv) == 1:
    usage_exit(sys.argv[0], 1)
M = int(sys.argv[1])
n = 2
nPrimes = 0
while n <= M:
    if isPrime(n):
        nPrimes += 1
        sys.stdout.write("Prime[%3d] = %5d\n" % (nPrimes, n))
    n += 1
sys.exit(0)


Generated by GNU enscript 1.6.4.