The right way is: import operator def fact(x): return reduce(operator.mul, xrange(1,x+1))
On 10/22/07, Paul Rudin <[EMAIL PROTECTED]> wrote: > > "[EMAIL PROTECTED]" <[EMAIL PROTECTED]> writes: > > > On Oct 22, 7:50 am, Duncan Booth <[EMAIL PROTECTED]> wrote: > >> Py-Fun <[EMAIL PROTECTED]> wrote: > >> > I'm stuck trying to write a function that generates a factorial of a > >> > number using iteration and not recursion. Any simple ideas would be > >> > appreciated. > >> > >> This version avoids doing anything fancier than adding 1, so it should > be > >> simple enough for anyone: > >> > >> def factorial(e): > >> a = 1 > >> for b in range(e): > >> c = 0 > >> for j in range(b, -1, -1): > >> for d in range(a): > >> c += 1 > >> a = c > >> return a > > > > Not simple enough for my taste: > > > >>>> import gmpy > >>>> gmpy.fac(10) > > mpz(3628800) > > I haven't followed all this thread, but has anyone yet done: > > import operator > def fact(x): > return reduce(operator.mul, xrange(1,x)) > -- > http://mail.python.org/mailman/listinfo/python-list > -- Rafael Sachetto Oliveira Sir - Simple Image Resizer http://rsachetto.googlepages.com
-- http://mail.python.org/mailman/listinfo/python-list