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

Reply via email to