본문 바로가기
알고리즘/BOJ

[BOJ / 백준] 10926번 팩토리얼 0의 개수 파이썬 / 파이썬 팩토리얼 0의 개수

by seohmoon 2022. 5. 2.

 

출처 : https://www.acmicpc.net/problem/1676

 

1676번: 팩토리얼 0의 개수

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

www.acmicpc.net


5랑 2를 곱해야 10이 나와서 0이 한개씩 추가되니까

팩토리얼에서 5랑 2의 개수를 구해주고 그 중 최솟값을 출력해주면 된다.

 

# BOJ1676
N = int(input())
five = 0 # 5의 개수
two = 0 # 2의 개수

for i in range(N, 0, -1): # 팩토리얼
    while True:
        if i % 5 == 0: # 5가 몇개 있는 지
            five += 1
            i = i // 5
        else:
            break

    while True:
        if i % 2 == 0: # 2가 몇개 있는 지
            two += 1
            i = i // 2
        else:
            break

if five == 0 or two == 0: # 예외처리
    print(0)
else:
    print(min(five, two)) # 최솟값

5나 2중에 하나가 0이면 10이 나올 수 없으니까 그땐 0을 출력해준다.

 

댓글