From 4271ecaf72f53e5bd4be964609ecddb9b95825ed Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Sun, 11 Oct 2009 08:48:28 +0000 Subject: [PATCH] Update primes script. --- Demo/scripts/README | 2 +- Demo/scripts/primes.py | 31 +++++++++++++++++-------------- 2 files changed, 18 insertions(+), 15 deletions(-) diff --git a/Demo/scripts/README b/Demo/scripts/README index 8e1b26f42f7..434c09b3d02 100644 --- a/Demo/scripts/README +++ b/Demo/scripts/README @@ -2,7 +2,7 @@ This directory contains a collection of executable Python scripts. See also the Tools/scripts directory! -beer.py Print the classic 'bottles of beer' list. +beer.py Print the classic 'bottles of beer' list eqfix.py Fix .py files to use the correct equality test operator fact.py Factorize numbers find-uname.py Search for Unicode characters using regexps diff --git a/Demo/scripts/primes.py b/Demo/scripts/primes.py index 5935a3c84a8..eeb14eec47e 100755 --- a/Demo/scripts/primes.py +++ b/Demo/scripts/primes.py @@ -2,26 +2,29 @@ # Print prime numbers in a given range +def primes(min, max): + if 2 >= min: + print 2 + primes = [2] + i = 3 + while i <= max: + for p in primes: + if i % p == 0 or p*p > i: + break + if i % p != 0: + primes.append(i) + if i >= min: + print i + i += 2 + def main(): import sys min, max = 2, 0x7fffffff if sys.argv[1:]: - min = int(eval(sys.argv[1])) + min = int(sys.argv[1]) if sys.argv[2:]: - max = int(eval(sys.argv[2])) + max = int(sys.argv[2]) primes(min, max) -def primes(min, max): - if 2 >= min: print 2 - primes = [2] - i = 3 - while i <= max: - for p in primes: - if i%p == 0 or p*p > i: break - if i%p <> 0: - primes.append(i) - if i >= min: print i - i = i+2 - if __name__ == "__main__": main()