본문 바로가기
Beakjoon&프로그래머스/파이썬

[백준/파이썬]2057번 팩토리얼 분해

by 현장 2021. 9. 16.

-코드

from math import factorial
n = int(input())
if n == 0:
    print('NO')
else:
    for i in range(20, -1, -1):
        if n >= factorial(i):
            n -= factorial(i)
        if n == 0:
            break
    if n == 0:
        print('YES')
    else:
        print('NO')

처음에 팩토리얼을 1부터 빼주는 식으로 했으나 틀려서 찾아보니 큰 수부터 빼주는 것과 최대 크기가 팩토리얼 20에 끝나는 것을 알고 해결하였습니다.