728x90
반응형

팩토리얼 결과값을 str로 변경하고 뒤에 0이 몇개 있는지 확인하면 된다.

허나 입력이 커진다면 시간초과가 뜰 것이다.

import math
n = str(math.factorial(int(input())))
l = len(n)
for i in range(l):
    if n[l-i-1] != '0':
        break
print(i)

뭔가 효율적인 방법이 있지 않을까해서 찾아본 결과 아래의 방식을 찾을 수 있었다.  

n = int(input())
t = n
n2, n5 = 0, 0
while(t != 0):
    t //= 2
    n2 += t
while(n != 0):
    n //= 5
    n5 += n
print(min(n2, n5))

728x90
반응형

+ Recent posts