3608: 整数分解-训练套题T5T1

Memory Limit:128 MB Time Limit:1.000 S
Judge Style:Text Compare Creator:
Submit:3 Solved:2

Description

1.整数分解(sum.pas)

【问题描述】

某些数能表示成为一些互不相同的整数的阶乘之和,如9=1!+2!+3!

现给定一个非负整数n,要求判断n能否表示成为一些互不相同的非负整数的阶乘之和,如果能,则输出“YES”,否则输出“NO

【输入格式】

  每行一个非负整数nn<=1000000),最后一行是一个负数,作为输入结束的标志。

  输入文件不超过100行。

【输出格式】

  对输入中的每个非负整数n,输出“YES”或者“NO”,各占一行。

【输入样例】

9

5

-1

【输出样例】

YES

NO

HINT

注意点:

 (1)0!=1, 输入也有可能是0,

 (2)负数结束,而不是-1,

 (3)0-9的阶乘预处理出,

 (4)从大到小能减则减,因为 x!>(x-1)!+(x-2)!+....+0!