백준 문제풀이/수학
[백준] 2004 조합 0의 개수 - python
peach_h
2022. 11. 16. 17:26
2004번: 조합 0의 개수
첫째 줄에 정수 $n$, $m$ ($0 \le m \le n \le 2,000,000,000$, $n \ne 0$)이 들어온다.
www.acmicpc.net
처음엔 바보같이 팩토리얼 계산 다한 후에 . . 또 0의 개수를 셀려고 했다.
하지만 우리는 전 문제에서 2*5의 수로 0의 개수를 셀수 있다는 지식을 얻었다.
이를 활용해보자
2의 개수를 구하는 함수와 5의 개수를 구하는 함수를 만들고,
이를 이용해 2와 5중 더 작은 수를 뽑으면 된다 !
a,b = map(int,input().split())
def count_2(num):
if num < 2:
return 0
count = 0
while num >= 2:
count+=num//2
num = num//2
return count
def count_5(num):
if num <5 :
return 0
count = 0
while num >=5:
count +=num//5
num = num//5
return count
cnt2 = count_2(a) - count_2(a-b) - count_2(b)
cnt5 = count_5(a) - count_5(a-b) - count_5(b)
print(min(cnt2,cnt5))
오늘도 하나 해결 !!