그러나 학생들에게 크나큰 기대를 품고 첫 수업에 들어갔던 현우는 아무도 외판원 순회 문제(Traveling Salesman Problem, TSP)를 풀지 못하는 것을 보고 낙심하였다.
그 와중에 학생 남규는 TSP를 완전탐색으로 풀려고 하였고, 현우는 그걸 보고 경악을 금치 못한다. 왜냐면 TSP를 완전탐색으로 풀려면 O(N!)의 시간이 소모되는데, 이는 경악을 금치 못할 시간이기 때문이다.
그러나 남규는 O(N!)이 왜 큰지도 잘 모른다. 그래서 현우는 더더욱 경악을 금치 못하고, N!이 얼마나 큰지 대략적으로나마 알려주기 위해, 자연수 N이 주어지면 N!의 오른쪽 끝에 있는 0의 개수를 알려주기로 하였다.
그러나 현우는 경악을 금치 못하여 지금 코딩을 할 수 없는 상황이다. 여러분이 현우를 대신하여 프로그램을 작성하시오.
import math
import sys
input=sys.stdin.readline
T=int(input())
N=[int(input()) for _ in range(T)]
for i in N:
five=5 # 5에서 시작
count=0
while five<=i: 배수보다 작을경우
count+=i//five #5로 나눈 몫을 추가. 5가 들어갈 수있는 만큼, -> 25가 들어갈수ㅡ 있는 만큼, -> 125만큼
five*=5
print(count)
'''
6
3
60
100
1024
23456
8735373
'''
five | i | count |
---|---|---|
5 | 60 | 12개( 51~512) |
25 | 60 | 2개 ( 25,50) 2는 매우 많기 때문에.. |