팩토리얼 0의 개수[68]
팩토리얼 0의 개수
https://www.acmicpc.net/problem/1676
문제
N!에서 뒤에서부터 처음 0이 아닌 숫자가 나올 때까지 0의 개수를 구하는 프로그램을 작성하시오.
(0 ≤ N ≤ 500)
예제 입력
10
에제 출력
2
처음에는 facorical을 구한뒤 10으로 나누려고 했는데 단순히 숫자로 처리하게 되면 overflow가 일어날수있었다.
그래서 문자로 바꾸어 0의 개수를 세고, 0이 아닌 문자가 나오면 break하는 형식으로 구했다.
푼 코드
import math
if __name__ == '__main__':
n = int(input())
# n=8
factorical = math.factorial(n)
cnt =0
# 단순히 숫자로 처리하면 overflow가 일어날 수 있다.
# while(factorical %10 ==0):
# cnt +=1
# factorical /=10
for i in list(reversed(str(factorical))):
if i == '0':
cnt += 1
elif i != '0':
break
print(cnt)