2013-02-07 4 views
-3

문제가 있습니다. 나는 큰 수의 계승을 찾고 싶다.팩토리얼 번호 찾기 및 종료

예 : 1555! =? 195! =?

내 주요 문제는 계승 번호의 끝 0의 정확한 숫자를 알고 싶다는 것입니다.

다음 공식을 사용합니다. (m!)^n = m! = 2 * 10^(n-1) + 2^2 * 10^(n-2) + ------- + 2^n.

나는 이와 같이 끝 0의 수에 대한 다른 계승을 풀 수 있습니다.

100! = 10^2 * 1 + 2^2 * 10^0 = 20 + 4 = 24

100! 이 계산에 따라 24로 끝나는 0이 있습니다.

하지만 다른 문제가 있습니다.

예 : 95!

i) 95! = (100-5)! = 24 - 2 * 5^(1-1) = 24 - 2 = 22 => 95! 22 0이야.

ii) 95! = (90 + 5)! = 9 * (2 * 10^0) + 2 * 5^0) = 18 + 2 = 20 => 95! 20 0이야.

이것이 내 문제입니다. 위의 수식을 사용하여 두 개의 다른 답변을 얻었고 혼란 스럽습니다. 완벽한 답을 얻지 못하므로 찾으십시오.

어차피 수학 사이트에 속해,

+3

당신은 미친입니다. 100! 95와 같지 않습니다! + 5! 어느 쪽도 100과 같지 않습니다! - 5! 수학 처음 읽기 – cipher

+0

시도해보십시오 [link] (http://www.physicsforums.com/showthread.php?t=84130) –

+0

네, 저도 압니다. 그러나 이것은 Google에서 얻은 수식에 따라 계승을위한 끝 0을 찾는 데 사용됩니다. :) –

답변

2

이 나쁜 질문입니다 ... 감사합니다. 그러나 여기에 당신을위한 생각이 있습니다 :

처음 100! = 100 * 99!

99! = 99 * 98! ~까지 1! = 1, 그리고 0! = 1

N에 몇 개의 후행 0이 있는지 알고 싶습니다. (적어도 내가 그 질문을 이해하는 방법이다).

10 명 중 몇 명이라고 생각하세요!

10! = 3628800 

두 개가 있습니다. 이유는 단지 2 * 5 = 후행 0이있는 숫자와 10이 있기 때문입니다. 따라서 합계가 2입니다 (5 * 4는 0이지만 4는 2의 배수입니다. 한 번 개별 번호 번식)

다음은 20 번입니다. 4를 가지고있다.

이제이 패턴이 유지된다는 것을 증명 (또는 증명)하고 나서 코드화하는 방법을 찾아야합니다.

+0

좋은 질문에 대한 좋은 대답 ... – imulsion

+0

선생님, 예 내 Que가 틀립니다. 그러나 나는 Que가있다. 몇 개의 끝 0입니다. 125의 팩토리얼에서! 이처럼 높은 숫자에서 끝자리 0에 대한 수식을 찾도록 도와주세요. –

3

n의 후미에 오는 0 수! 는 1, 2, ..., n 순서로 5의 인수 수입니다. 이것은 후행 0은 결과에서 10의 요인 수이고 10은 5 x 2의 소수 요소화를 갖기 때문입니다. 5보다 많은 인수가 2보다 많기 때문에 5가 5보다 많으므로 결과가 나타납니다.

5의 요인 수는 ...[n/5] + [n/25] + ... + [n/(5^k)] + ... 여기서 [ ]은 반올림을 의미합니다 (플로어).

이 코드를 계산하려면 어떻게해야합니까? 아마 이것과 비슷한 것.

int trailing_factorial_zeros(int n) { 
    int result = 0; 
    int m5 = 5; 
    while (n >= m5) { 
     result += n/m5; 
     m5 *= 5; 
    } 
    return result; 
}