2018. 1. 5. 23:51, 알고리즘/BOJ
https://www.acmicpc.net/problem/2004
n, m의 값이 상당히 크므로 실제로 nCm을 계산해서 연속한 0의 개수를 파악하는 것은 불가능에 가깝습니다.
그렇지만 nCm = n! / m!*(n-m)!이고, nCm이 가지고 있는 2의 갯수와 5의 갯수를 안다면 연속한 0의 개수를 알 수 있습니다.
예를 들어 100C3의 연속한 0의 개수를 알기 위해 100*99*98/6을 직접 계산해도 되지만, 이보다는 100C3이 인수 2를 2개, 인수 5를 2개 가지고 있으므로 연속한 0의 개수가 2개라는 것을 알 수 있습니다.
N!가 소인수 p를 몇 개 가지고 있는지는 [N/p]+[N/p^2]+[N/p^3]+... 으로 계산할 수 있습니다.
'알고리즘 > BOJ' 카테고리의 다른 글
[BOJ] 7562번: Knights Moves (0) | 2018.01.06 |
---|---|
[BOJ] 9625번: RIJEČI (0) | 2018.01.06 |
[BOJ] 2590번: 색종이 (0) | 2018.01.05 |
[BOJ] 9663번: N-Queen (0) | 2018.01.05 |
[BOJ] 2302번: 극장 좌석 (0) | 2018.01.05 |
[BOJ] 1915번: 가장 큰 정사각형 (0) | 2018.01.05 |
Comments