Thread Closed

Number of digits in n!

 
Share Thread Thread Tools
Aug9-06, 06:52 AM   #1
 

Number of digits in n!


I have to code a program in C that will give the correct number of digits of n! where n is upto 500.
I thought this way:
Get the value of log(n!) by using a for loop. (like log1 + log2 + log3.... upto logn, log is to the base 10). Now the final answer will be (int)sum + 1. If I give 500! factorial the answer comes out to be 1135 acc. to my program, but the answer given is 1133. Am I right?
 
PhysOrg.com
PhysOrg
science news on PhysOrg.com

>> 'Whodunnit' of Irish potato famine solved
>> The mammoth's lament: Study shows how cosmic impact sparked devastating climate change
>> Curiosity Mars rover drills second rock target
Aug9-06, 08:57 PM   #2
 
Recognitions:
Science Advisor Science Advisor
I also get 1135.
 
Aug9-06, 09:48 PM   #3
 
Recognitions:
Gold Membership Gold Member
Science Advisor Science Advisor
Retired Staff Staff Emeritus
500! =

Code:
122013682599111006870123878542304692625357434280319284219241358838584537315388\
199760549644750220328186301361647714820358416337872207817720048078520515932928\
547790757193933060377296085908627042917454788242491272634430567017327076946106\
280231045264421887878946575477714986349436778103764427403382736539747138647787\
849543848959553753799042324106127132698432774571554630997720278101456108118837\
370953101635632443298702956389662891165897476957208792692887128178007026517450\
776841071962439039432253642260523494585012991857150124870696156814162535905669\
342381300885624924689156412677565448188650659384795177536089400574523894033579\
847636394490531306232374906644504882466507594673586207463792518420045936969298\
102226397195259719094521782333175693458150855233282076282002340262690789834245\
171200620771464097945611612762914595123722991334016955236385094288559201872743\
379517301458635757082835578015873543276888868012039988238470215146760544540766\
353598417443048012893831389688163948746965881750450692636533817505547812864000\
000000000000000000000000000000000000000000000000000000000000000000000000000000\
0000000000000000000000000000000000000000000
This has 1135 digits.

- Warren
 
Aug10-06, 02:39 AM   #4
 

Number of digits in n!


I too verified with the teacher, the answer is 1135. But how in heaven did you calculate the value of 500!, chroot? What is the maximum precision of the calculator you used?
 
Aug10-06, 08:34 AM   #5
 
Recognitions:
Homework Helper Homework Help
Quote by Gagan A
I too verified with the teacher, the answer is 1135. But how in heaven did you calculate the value of 500!, chroot? What is the maximum precision of the calculator you used?
I think he used Methematica. It can handle most mathematical operations quite well.
It can give you the evaluation of 500!, say, in less than 1 second.
------------------
The reason you got the wrong answer may be the rounding errors of the programme.
 
Aug10-06, 01:42 PM   #6
 
Recognitions:
Gold Membership Gold Member
Science Advisor Science Advisor
Retired Staff Staff Emeritus
Gagan A,

I did indeed use Mathematica (VietDao29 probably recognized the tell-tale "\" characters at the end of each line in my output).

It uses arbitrary-precision arithmetic, so the maximum precision is that afforded by the entire memory of my computer (2 GB on this one). 500! is computed, indeed, in the blink of an eye, and probably only uses a few kilobytes of memory.

- Warren
 
Aug11-06, 07:02 AM   #7
 
Yes Mathemathica really wotks great for calculations like this. But there are other good way's of doing it as well. I have in the past also did stuff like this with the Smalltalk programming language (it isn't very good for doing mathemathics but it does enable arbitrary-precision arithmetic) which was also qouit fast. I once also made a programm in C that could work with large integers (it used strings) but it wasn't veary fast.
 
Aug11-06, 07:49 AM   #8
 
Recognitions:
Homework Helper Homework Help
Science Advisor Science Advisor
It may be 'cheating' within the context of your course (if they want you to do this a certain way), but you might want to look up Stirling's series. You can calculate the log of gamma (and hence the factorial) to the necessary accuracy to find the number of digits without resorting to a summation.
 
Aug11-06, 08:00 AM   #9
 
Python also supports arbitrary length integers:
Code:
>>> def fac(a):
    if a==1: return a
    return a * fac(a-1)
>>> len( str( fac( 500)))
1135
 
Thread Closed
Thread Tools


Similar Threads for: Number of digits in n!
Thread Forum Replies
last two digits of 2^999 Linear & Abstract Algebra 10
Sum of digits Precalculus Mathematics Homework 6
last digits of 3^999 Linear & Abstract Algebra 8
Question about determining digits of a number Precalculus Mathematics Homework 1
Pi to 24 digits General Discussion 38