Iteration for Factorials

Paul Rudin paul.nospam at rudin.co.uk
Mon Oct 22 14:35:56 EDT 2007


"mensanator at aol.com" <mensanator at aol.com> writes:

> On Oct 22, 7:50 am, Duncan Booth <duncan.bo... at invalid.invalid> wrote:
>> Py-Fun <lorna.bu... at gmail.com> 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))



More information about the Python-list mailing list