1번째 줄: factorial을 사용하기위해 math를 import한다.
4번째 줄: factorial을 저장할 빈 리스트를 선언한다.
6번째 줄 for문: n의 범위가 0 < n ≤ 3,628,800 이고 3,628,800은 10!이기 때문에 1부터 10까지 factorial을 저장하기위해 범위를 지정한다.
7번째 줄: math.factorial()을 이용하여 1~10까지 factorial을 구하여 리스트에 append()한다.
factorial_array 출력 결과
10번째 줄: 0부터9까지 j의 범위를 지정하고, n과 j번째의 팩토리얼 값이 같으면 인덱스 이기 때문에 0부터 9까지 저장되어있지만 +1 해주어 n!
의 n을 return한다.
14번째 줄: if문에 부합하지 않고 n이 factorial_array에 저장되어 있는 값중 j번째 보다 크고 j+1번째보다 작으면
즉 n이하의 최대 팩토리얼을 return한다.
4번째 줄: 범위의 제한이 10까지이기 때문에 k를 10으로 초기화해준다.
5번째 줄 while문: n값이 팩토리얼 값보다 작을때까지만 반복한다.
while문 출력 결과
TC2에서 4!보다 작은 3!(6)을 return한다.
import math
math.factorial(1000)