# [Tutor] exercise is recursion

Timothy Wilson wilson@visi.com
Mon, 20 Nov 2000 22:09:12 -0600 (CST)

```Hi everyone,

I thought I would write a little progam that would factor a given integer
into its primes. This seemed like a good time to use recursion, but I'm
having trouble making it work. Anyone see the problem here? I've added a few
lines of debugging code, and there's a function to determine if a number is
prime, but I don't think I'll need it. Any suggestions would be appreciated.

--snip--
#!/usr/bin/python

# This python factors a number into its primes.

from math import *

def isPrime(number):
for j in [2] + range(3, sqrt(number)+1, 2):
if number in [1, 2]:
return 1
if  number % j == 0:
return 0
return 1

def factor(factors, number, i=2):
while i < sqrt(number):
if number % i == 0:
factor(factors, number/i, i)
factors.append(i)
#			if number/i == i:
i = i + 1
print str(number) + '\t' + str(i) + '\t' + str(factors) # debugging
code
return factors

def primeFactors(number):
factors = []
print 'number' + '\t' + 'i' + '\t' + 'factors' # debugging header
print str(number) + '\t' + '2' + '\t' + str(factors)
factor(factors, number)
#	factors.sort()
#	print factors

if __name__ == '__main__':
number = raw_input('Factor what number into primes? ')
primeFactors(int(number))

--snip--

Thanks,
Tim

--
Tim Wilson      | Visit Sibley online:         | Check out:
Henry Sibley HS | http://www.isd197.k12.mn.us/ | http://www.zope.org/
W. St. Paul, MN |                              | http://slashdot.org/
wilson@visi.com |   <dtml-var pithy_quote>     | http://linux.com/

```