- 극악의 정답률을 보고 처음엔 경악했다. 입력값의 최대가 1,000,000인 점으로 미루어 보았을 때 일반적인 방식인
factorial
을 이용하는 방법은 아닌 것 같았다.- 앞에서부터 곱하는 방식을 사용해서 대충 15자리와 같거나 큰 경우가 된다면 슬라이싱을 통해 구간 숫자를 구한다.
import sys
input = sys.stdin.readline
N = int(input())
result = 1
for i in range(2, N+1):
result *= i
if len(str(result)) >= 15:
result = int(str(result)[-15:])
while str(result)[-1] == "0":
result = int(str(result)[:-1])
N = str(result)[-5:]
print(N)