def fac(n):
s = 1
if n == 0:
return 1
for i in range(1, n+1):
s *= i
return s
def sum_f(n, f, s, i):
if s == n:
return True
if s > n:
return False
for i in range(i, len(f)):
a = fac(i)
if a + s > n:
break
if sum_f(n,f,a+s,i+1):
return True
return False
def solve(n):
f = []
for i in range(n):
a = fac(i)
if a > n:
break
f.append(a)
if sum_f(n, f, 0, 0):
return True
return False
while True:
try:
n = int(input())
if solve(n):
print("YES")
else:
print('NO')
except:
break

京公网安备 11010502036488号