본문 바로가기
백준

1676번: 팩토리얼 0의 개수 [백준 - Python]

by 청원뿔세포 2023. 9. 18.

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)

 

댓글