elevne's Study Note

백준 Python 문제풀이 (1676번: 팩토리얼 0의 개수) 본문

ETC/BOJ

백준 Python 문제풀이 (1676번: 팩토리얼 0의 개수)

elevne 2023. 6. 5. 18:33

링크: https://www.acmicpc.net/problem/1676

 

1676번: 팩토리얼 0의 개수

N!에서 뒤에서부터 처음 0이 아닌 숫자가 나올 때까지 0의 개수를 구하는 프로그램을 작성하시오.

www.acmicpc.net

 

 

N!에서 뒤에서부터 처음 0이 아닌 숫자가 나올 때까지 0의 개수를 구하는 프로그램을 작성하시오.

 

 

1676번: 팩토리얼 0의 개수

 

 

 

import sys


def solution():
    n = int(sys.stdin.readline())
    fac = 1
    for i in range(1, n+1):
        fac *= i
    x = 0
    for num in list(reversed(list(str(fac)))):
        if num == "0":
            x += 1
        else:
            return x

if __name__ == "__main__":
    print(solution())

 

 

 

아래와 같이 조금 더 간결하게 적어볼 수도 있다.

 

 

a = int(input())

summing = 1
count = 0
tt = -1

for i in range(1, a+1):
    summing *= i

while True:
    summing = str(summing)
    if summing[tt] == '0':
        count += 1
        tt -= 1

    else:
        break

print(count)