From: Guido van Rossum Date: Wed, 18 Dec 1991 13:45:17 +0000 (+0000) Subject: Adapt to mixed-mode arithmetic, and added a warning comment. X-Git-Tag: v0.9.8~679 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=1c8230b70de22dd6f4d21132a7590f7a40044c44;p=thirdparty%2FPython%2Fcpython.git Adapt to mixed-mode arithmetic, and added a warning comment. --- diff --git a/Demo/scripts/fact.py b/Demo/scripts/fact.py index ba75a0403d17..6aac414ac48a 100755 --- a/Demo/scripts/fact.py +++ b/Demo/scripts/fact.py @@ -1,7 +1,9 @@ #! /usr/local/python -# Factorize numbers, slowly. -# This version uses plain integers and is thus limited to 2**31-1. +# Factorize numbers. +# The algorithm is not efficient, but easy to understand. +# If there are large factors, it will take forever to find them, +# because we try all odd numbers between 3 and sqrt(n)... import sys from math import sqrt @@ -17,13 +19,13 @@ def fact(n): res.append(2) n = n/2 # Try odd numbers up to sqrt(n) - limit = int(sqrt(float(n+1))) + limit = sqrt(n+1) i = 3 while i <= limit: if n%i = 0: res.append(i) n = n/i - limit = int(sqrt(float(n+1))) + limit = sqrt(n+1) else: i = i+2 res.append(n) @@ -32,12 +34,12 @@ def fact(n): def main(): if len(sys.argv) > 1: for arg in sys.argv[1:]: - n = int(eval(arg)) + n = eval(arg) print n, fact(n) else: try: while 1: - n = int(input()) + n = input() print n, fact(n) except EOFError: pass