🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.lang.pascal.misc
Article #17

Re: Tough FACTORIAL math problem...

#17
From: John Cleland
Date: Wed, 14 Feb 1996 20:30
35 lines
1832 bytes
The Crow wrote:
> 
> Here is what I am trying to do, I want to find the last NON-ZERO digit of a
> given factorial.  For instance,
> 
> 5! = 120
> 
> so the last non-zero digit is 2.  I want to be able to do this up to 1000.
> Problem is, no matter how huge of a data-type you use, there isn't any way for
> the computer to handle 1000!, it is however possible to find the last non-zero
> digit somehow.  One thing I have tried is as I went through mulitplying the
> series of numbers in the factorial (5 * 4 * 3 * 2) I would remove all the
> trailing ZEROS, I got this to work up to 789, but it wont work with 1000 and i
> am not really sure why.  If anyone has a clue how I can do this let me know.

Don't just strip the trailing zeros, remove all digits except the last non-zero
digit (which is your output) and then multiply by the next number in your sequence.
This keeps the numbers down to a managable level and gives the correct answer as
no more significant digit can affect the value of the LSD.

If we have a function int LSD(int val) which computes the value of the least
significant non-zero digit the pseudo C code should be something like :

int factLSD = 1;
int i;

for (i = 1; i <= 1000; i++)
  {
  factLSD = LSD(i * factLSD);
  print i, factLSD;
  } 


John
john.cleland@born.com
Technical Details
Message-ID: <31224679.6193@born.com>
Path: arc1-ca.pugleaf.net!news.mr.net!usenet
References: <4fr8be$ass@news.iconn.net>

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!news.mr.net!usenet
From: John Cleland <clelaj@born.com>
Newsgroups: comp.lang.pascal.misc,comp.lang.c++,comp.lang.c,comp.lang.pascal.borland
Subject: Re: Tough FACTORIAL math problem...
Date: Wed, 14 Feb 1996 14:30:49 -0600
Organization: Born
Message-ID: <31224679.6193@born.com>
References: <4fr8be$ass@news.iconn.net>
NNTP-Posting-Host: 204.73.78.51
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
X-Mailer: Mozilla 2.0 (Win95; I)