diff --git a/Demo/scripts/README b/Demo/scripts/README
index 18f0de8..bf0f142 100644
--- a/Demo/scripts/README
+++ b/Demo/scripts/README
@@ -2,7 +2,7 @@
 
 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 0924aab..65da42e 100755
--- a/Demo/scripts/primes.py
+++ b/Demo/scripts/primes.py
@@ -2,26 +2,30 @@
 
 # Print prime numbers in a given range
 
-def main():
-    import sys
-    min, max = 2, 0x7fffffff
-    if sys.argv[1:]:
-        min = int(eval(sys.argv[1]))
-        if sys.argv[2:]:
-            max = int(eval(sys.argv[2]))
-    primes(min, max)
-
 def primes(min, max):
-    if 2 >= min: print(2)
+    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:
+            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 i >= min:
+                print(i)
+        i += 2
+
+def main():
+    import sys
+    min, max = 2, 0x7fffffff
+    if sys.argv[1:]:
+        min = int(sys.argv[1])
+        if sys.argv[2:]:
+            max = int(sys.argv[2])
+    primes(min, max)
+
 
 if __name__ == "__main__":
     main()
