반응형
문제
팩토리얼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자리를 출력해준다.
'프로그래밍 > 백준' 카테고리의 다른 글
[알고리즘] 백준 1931 파이썬 - 회의실 배정 (4) | 2023.01.11 |
---|---|
[알고리즘] 백준 5525 파이썬 - IOIOI (4) | 2023.01.10 |
[알고리즘] 백준 9251 파이썬 - LCS (4) | 2023.01.08 |
[알고리즘] 백준 12865 파이썬 - 평범한 배낭 (6) | 2023.01.07 |
[알고리즘] 백준 9465 파이썬 - 스티커 (3) | 2023.01.06 |