#include <cstdio> using namespace std; int a[11]; int main() { a[0] = 1; //a[0]也要算进去! a[1] = 1; for (int i = 2; i < 11; i++) a[i] = a[i - 1] * i; int n; while (scanf("%d", &n) != EOF) { int t = n; for (int i = 10; i >= 0; i--) {//n!每两个数相隔大 故可此方法 if (t >= a[i]) { t -= a[i]; } } if (t > 0) { printf("NO\n"); } else { printf("YES\n"); } } }