ILSMATH - Đếm số giai thừa !
Tác giả: RR
Ngôn ngữ: C++
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <cmath>
#include <algorithm>
#include <vector>
#include <set>
#include <map>
#include <stack>
#include <queue>
#include <string>
#include <deque>
#include <complex>
#define FOR(i,a,b) for(int i=(a),_b=(b); i<=_b; i++)
#define FORD(i,a,b) for(int i=(a),_b=(b); i>=_b; i--)
#define REP(i,a) for(int i=0,_a=(a); i<_a; i++)
#define ll long long
#define F first
#define S second
#define PB push_back
#define MP make_pair
using namespace std;
const double PI = acos(-1.0);
int main() {
// freopen("input.txt", "r", stdin);
// freopen("output.txt", "w", stdout);
int n; cin >> n;
n--;
double sum = 0.0;
int first = 1;
while (sum < n) first++, sum += log(first) / log(10.0);
if (sum > n+1) {
puts("NO");
return 0;
}
int last = first;
while (sum < n+1) last++, sum += log(last) / log(10.0);
last--;
if (n == 0) first = 0;
cout << last - first + 1 << endl;
FOR(i,first,last) cout << i << endl;
return 0;
}