https://www.acmicpc.net/problem/2004
2004번: 조합 0의 개수
첫째 줄에 정수 $n$, $m$ ($0 \le m \le n \le 2,000,000,000$, $n \ne 0$)이 들어온다.
www.acmicpc.net
- 백준 1676의 팩토리얼 0의 개수를 응용하는 문제라고 생각된다.
- 2와 5의 개수를 구해야한다. (10을 만들 수 있는 수)
- 분자의 2나 5의 개수는 증가 시키고, 분모는 개수에서 뺴야한다.
- 그리고 출력은 2와 5개수 중에서 작은 수를 출력한다.
더보기
# 25, 12 -> 5200300
N, M = map(int, str(input()).split())
cnt5 = 0
cnt2 = 0
num = 2
while True:
if(num > N): break
cnt2 += N // num
num *= 2
num = 5
while True:
if(num > N): break
cnt5 += N // num
num *= 5
##
num = 2
while True:
if(num > M): break
cnt2 -= M // num
num *= 2
num = 5
while True:
if(num > M): break
cnt5 -= M // num
num *= 5
##
num = 2
while True:
if(num > N-M): break
cnt2 -= (N-M) // num
num *= 2
num = 5
while True:
if(num > N-M): break
cnt5 -= (N-M) // num
num *= 5
print(cnt5 if cnt5 < cnt2 else cnt2)
'Coding Problem > 백준' 카테고리의 다른 글
[백준] 2630 - 색종이 만들기 (0) | 2021.06.21 |
---|---|
[백준] 11050 - 이항계수2 (0) | 2021.06.01 |
[백준] 9375 - 패션왕 신해빈 (0) | 2021.05.31 |
[백준] 5086 - 배수와 약수 (0) | 2021.05.31 |
[백준] 3036 - 링 (0) | 2021.05.31 |