Hi...

Whoa, this brings back memories of a 'wasted' summer in high school (1980?) tinkering with my ol' TI58! (Didn't get my 41C til Christmas in my senior year - and then fooling w/system architecture/SP/ byte jumping etc took over...)

Wrote various "big factorial" programs, including log(n!) programs and approximations.

Stirling's Approx. works progressively better for larger and larger values of n, but has to be 'warped' for moderately useful performance for, say, n<69.

n! ~= sqrt(2*pi*n) * (n/e)^n

and

log(n!) ~= 0.5*log(2*pi*n) + n*log(n/e)

Anyway I still remember that 10,000!~= 2.645x10^35659

and 1,000!~= n.nnnx10^2567

100!~= 9.332x10^157...

Nifty little thing:

Number of trailing zeros of n!:

Trailing zero = multiple of 10. We have an excess of factors of two in a factorial (after all, every other number is even!) so every term in factorial that has a 5 or power thereof determines a trailing zero.

Thus:

int(n/5)+int(n/25)+int(n/125)+int(n/625)+int(n/5^5)...

gives us number of trailing zeros in n! . 1000! has, IIRC, 249 trailing zeros and 10,000! has 2499 trailing zeros.

Factorials are neat. Remember finding out about companion gamma function (I *knew* there must be something continuous over n>=0 for something factorial-like.)

That was a fun summer...

Bill Wiese

San Jose, CA