처음엔 바보같이 팩토리얼 계산 다한 후에 . . 또 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))
오늘도 하나 해결 !!
'백준 문제풀이 > 수학' 카테고리의 다른 글
[백준] 6588 골드바흐의 추측 -python (1) | 2022.11.16 |
---|---|
[백준] 1676 팩토리얼 0의 개수 - python (0) | 2022.11.16 |
[백준] 11576 Base Conversion - python (0) | 2022.11.15 |
[백준] 10872 팩토리얼 - python (0) | 2022.11.15 |
[백준] 11653 소인수분해 - python (0) | 2022.11.15 |