Click here to Skip to main content
       

Algorithms

 
Hint: For improved responsiveness ensure Javascript is enabled and choose 'Normal' from the Layout dropdown and hit 'Update'.
You must Sign In to use this message board.
Search this forum  
    Spacing  Noise  Layout  Per page  Show 
AnswerRe: NORMSDIST functionmember73Zeppelin3 Jul '08 - 2:11 
QuestionRe: NORMSDIST functionmvpCPallini3 Jul '08 - 2:29 
AnswerRe: NORMSDIST functionmember73Zeppelin3 Jul '08 - 3:19 
GeneralRe: NORMSDIST functionmembersumit70343 Jul '08 - 2:47 
GeneralRe: NORMSDIST functionmemberMember 82494620 Dec '11 - 23:54 
GeneralThe six rightmost non-zero digits of 1000000!memberRod Gowdy2 Jul '08 - 4:50 
GeneralRe: The six rightmost non-zero digits of 1000000! [modified]memberRobert.C.Cartaino2 Jul '08 - 6:33 
The last six non-zero digits of 1,000,000! are 412544. Please, keep your money.
 
I wrote this code to calculate your answer:
// Calculate the least significant (non-zero) digits of large factorials.
// By Robert C. Cartaino
// Posted via http://www.codeproject.com
// 02-July-2008

using System;
 
class Program
{
    const ulong Target = 1000000;       // This is the number you are trying to find the factorial of.
    const ulong RoundOff = 10000000000; // This rounds off the answer so the intermediate results don't overflow.

    static void Main(string[] args)
    {
        ulong factorial = 1;
 
        // Iterate through all numbers up to 'Target', multiply by each to find the factorial of 'Target'.
        for (ulong n = 1; n <= Target; n++)
        {
            factorial *= n;
 
            // Remove the trailing zeros.
            while (factorial % 10 == 0)
            {
                factorial /= 10;
            }
 
            // We only need the right-most digits.
            factorial %= RoundOff;
 
            //Console.WriteLine("{0}! = {1}", n, factorial);
        }
 
        Console.WriteLine("{0}! (truncated) = {1}", Target, factorial);
    }
}
 
Why it works:
 
When multiplying numbers, the trailing zeros at the end will not change the outcome... so I threw those out.
 
Also, if you are only interested in the least significant digits, then the upper-most digits will not have an effect on the outcome of the lower digits... so I threw those out.
 
With all the rounding, I didn't have to worry about overflow so I was able to calculate the "truncated factorials" of very large numbers iteratively.
 
Enjoy,
 
Robert C. Cartaino
 
modified on Wednesday, July 2, 2008 1:26 PM

GeneralRe: The six rightmost non-zero digits of 1000000!memberRod Gowdy3 Jul '08 - 3:42 
GeneralRe: The six rightmost non-zero digits of 1000000!memberRobert.C.Cartaino3 Jul '08 - 10:06 
QuestionSpecify numbers as product of Primes?memberIan Uy25 Jun '08 - 19:37 
AnswerRe: Specify numbers as product of Primes?membercp987625 Jun '08 - 21:32 
GeneralRe: Specify numbers as product of Primes?memberIan Uy26 Jun '08 - 0:42 
AnswerRe: Specify numbers as product of Primes?memberRobert.C.Cartaino26 Jun '08 - 4:48 
GeneralRe: Specify numbers as product of Primes?memberIan Uy26 Jun '08 - 4:50 
GeneralRe: Specify numbers as product of Primes?memberThe Developer8 Aug '08 - 7:03 
GeneralRe: Specify numbers as product of Primes?memberIan Uy26 Jun '08 - 6:28 
GeneralRe: Specify numbers as product of Primes?memberPaul Conrad28 Jun '08 - 5:44 
GeneralRe: Specify numbers as product of Primes?memberIan Uy28 Jun '08 - 5:46 
GeneralRe: Specify numbers as product of Primes?memberPaul Conrad28 Jun '08 - 6:11 
GeneralRe: Specify numbers as product of Primes?memberRavi Bhavnani8 Aug '08 - 7:16 
GeneralRe: Specify numbers as product of Primes?membercp987628 Jun '08 - 20:27 
GeneralRe: Specify numbers as product of Primes?mvpLuc Pattyn29 Jun '08 - 2:42 
GeneralRe: Specify numbers as product of Primes?memberMarkBrock27 Jun '08 - 18:46 
GeneralRe: Specify numbers as product of Primes?memberPaul Conrad28 Jun '08 - 5:42 
GeneralRe: Specify numbers as product of Primes?memberChandraRam2 Jul '08 - 22:49 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   


Advertise | Privacy | Mobile
Web01 | 2.6.130516.1 | Last Updated 18 May 2013
Copyright © CodeProject, 1999-2013
All Rights Reserved. Terms of Use
Layout: fixed | fluid