프로그래밍/백준

[알고리즘] 백준 1564 파이썬 - 팩토리얼5

매 석 2023. 1. 9. 21:05
반응형

 

 

1564번: 팩토리얼5

첫째 줄에 정수 N이 주어진다. N은 1,000,000보다 작거나 같다. 또, 9보다 크거나 같다.

www.acmicpc.net

문제

팩토리얼5란, N!의 0이 아닌 뒤 5자리를 말한다.

N이 주어졌을 때, 팩토리얼5를 구하는 프로그램을 작성하시오.

 

문제풀이

n=int(input())
x=1
for i in range(2,n+1):
	#01
    x*=i
    while True:
    	#02
        if str(x)[-1]=="0":
            x//=10
        else:
            break
    #03
    x%=10**30
print(str(x)[-5:])

- #01 : x에 팩토리얼과 같이 누적으로 n+1까지 곱해준다.

- #02 : 곱하는 과정에서 x의 맨 뒷자리가 0이라면  x를 10으로 나눈 몫을 x에 저장한다.

- #03 : 너무 큰 값이 되어 시간초과가 되지 않게, 적당히 큰 수로 나눈 나머지를 x에 저장한다.

           마지막 5자리를 출력해준다.