✅ 조합 0의 개수
https://www.acmicpc.net/problem/2004
◾ 평소 같은 방법으로 풀면 위와 같은 재밌는 결과를 볼 수 있다.
import sys
N, M = map(int, sys.stdin.readline().split())
def factorial(num, v):
ans = 0
i = v
while i <= num:
ans += num // i
i *= v
return ans
res1, res2 = 0, 0
res1 += factorial(N, 2)
res1 -= factorial(N - M, 2)
res1 -= factorial(M, 2)
res2 += factorial(N, 5)
res2 -= factorial(N - M, 5)
res2 -= factorial(M, 5)
print(min(res1, res2))
◾ 끝자리에 0이 몇개가 있는지 알아내는 문제
◾ 끝자리에 0이 있으려면 소인수분해 했을 때 2 x 5가 있어야 한다.
◾ 즉, 10이 있어야 한다.
◾ N! 을 소인수분해를 했을 때 2와 5가 몇 개가 나오는지 알아야 한다.
# 코드 플러스 백준 2004 조합 0의 개수 파이썬 python
728x90
'✏️ 𝗔𝗹𝗴𝗼𝗿𝗶𝘁𝗵𝗺 > 백준 알고리즘' 카테고리의 다른 글
[BJ12100] 2048 (Easy) (0) | 2022.04.28 |
---|---|
[BJ13460] 구슬 탈출2 (0) | 2022.04.27 |
[수학] [BJ1676] 팩토리얼 0의 개수 (0) | 2021.12.01 |
[수학] [BJ10872] 팩토리얼 (0) | 2021.12.01 |
[수학] [BJ6588] 골드바흐의 추측 (0) | 2021.12.01 |