문제
https://www.acmicpc.net/problem/3474
풀이
import sys
input = sys.stdin.readline
n = int(input())
for _ in range(n):
x = int(input())
cnt=0
i=5
while i<=x: # 5가 몇개가 들어가는지 구해준다.
cnt+=x//i
i*=5
print(cnt)
0의 개수를 구하려면 숫자에 10이 곱해진 횟수를 구해줘야한다.
예 ) 100 = 10**2
10을 소인수 분해 하면 2*5이다.
즉, 숫자를 소인수 분해하여 (2*5) 가 몇개 있는지 구하면된다.
5가 2보다 크기 때문에 5가 몇개 들어있는지 구하면된다.
'코딩테스트 > Python' 카테고리의 다른 글
[Python] 백준 #14620 - 꽃길 (0) | 2022.05.16 |
---|---|
[Python] 백준 #2910 - 빈도 정렬 (0) | 2022.05.16 |
[Python] 백준 #17298 - 오큰수 (0) | 2022.05.16 |
[Python] 백준 #2636 - 치즈 (0) | 2022.05.15 |
[Python] 백준 #14502 - 연구소 (0) | 2022.05.15 |