https://www.acmicpc.net/problem/1676
1676번: 팩토리얼 0의 개수
N!에서 뒤에서부터 처음 0이 아닌 숫자가 나올 때까지 0의 개수를 구하는 프로그램을 작성하시오.
www.acmicpc.net
팩토리얼 결과 뒤에 0이 나오는 경우는 가장 간단하게 생각했을 때, 5가 몇개들어가있는지 알 수 있으면 된다.
2*5 = 10 인데, 2는 5보다 더 자주 출현하므로 2는 충분하다. 따라서 5의 개수가 몇개인지만 알면된다.
이 문제에서는 주어지는 수의 범위가 0~500이다.
5^4 = 625이므로 5^3까지만 고려하면되고, 0!일 경우도 따로 생각해주면 된다.
0!=1 이므로 따로 케이스를 만들어 0을 출력하면된다.
5^3일때 한번에 3번 카운트를 해도 되지만, 일부러 한번만 카운트하는 방법을 사용하였다.
5^2일때, 5^1일때 중복으로 카운트가 되기 때문이다. 따라서 5의 3제곱,2제곱, 1제곱일때 모두 1번씩 카운트되도록 만든다.
n = int(input())
cnt=0
if n==0:
print(0)
else:
for i in range(1,n+1):
if i%(5*5*5)==0:
cnt+=1
if i %(5*5)==0:
cnt+=1
if i%5==0:
cnt+=1
print(cnt)
'백준' 카테고리의 다른 글
26111: Parentheses Tree [백준 - Python] (0) | 2023.10.03 |
---|---|
11070 : 피타고라스 기댓값 [백준 - Python] (0) | 2023.09.28 |
1920번: 수 찾기 [백준 - Python] (0) | 2023.09.15 |
27866번: 문자와 문자열 [백준 Python] (0) | 2023.09.15 |
[python]은?행 털!자 1 - 26267 (0) | 2022.12.19 |
댓글