[백준][C++] 1676번: 팩토리얼 0의 개수 <153>


[백준][C++] 1676번: 팩토리얼 0의 개수 <153>

직접 풀어보고 올리는 코드입니다. 지적이나 더 좋은 방향에 대한 댓글은 항상 환영합니다. 생각의 흐름 혼자 생각하진 못했고, 다른 분들의 글을 참고하였다. 이 문제의 핵심은 0을 만들수 있는 방법은 2x5 라는 점 이다. 예를 들어 10!은 3628800 이다. 여기서 0이 2개인 이유는 10!을 소인수 분해 해보면 알 수 있다. 10! = 2^6 x 3^4 x 7 x (2^2 x 5^2) = 2^6 x 3^4 x 7 x (10^2) 0이 몇개인지 알아내려면 소인수분해 했을때 2와 5가 몇개 나오는지 알아야 한다. 또한 짝수인 2의 개수보다 5의 개수가 항상 더 적기때문에 최종적으로 5의 개수만 세면 된다. 100!을 예로들어보자. 5가 1개인 경우 : 5x1, 5x2, 5x3, ... , 5x20 &#x3..........



원문링크 : [백준][C++] 1676번: 팩토리얼 0의 개수 <153>