ILSMATH - Đếm số giai thừa !

Tác giả: khuc_tuan

Ngôn ngữ: C++

#include <iostream>
#include <sstream>
#include <cstdio>
#include <vector>
#include <map>
#include <set>
#include <queue>
#include <algorithm>
#include <cstring>
#include <cmath>
#include <string>
#include <cstdlib>
using namespace std;

#define Rep(i,n) for(int i=0;i<(n);++i)
#define For(i,a,b) for(int i=(a);i<=(b);++i)
#define Ford(i,a,b) for(int i=(a);i>=(b);--i)
#define fi first
#define se second
#define pb push_back
#define MP make_pair

typedef pair<int,int> PII;
typedef vector<int> VI;



int main() {
	int n;
	cin >> n;
	VI res;
	double d = 0;
	For(i,0,1000000) {
		if(i > 0) d += log((double)i) / log(10);
		if(d >= n) break;
		if(d >= n-1) res.pb(i);
	}
	if(res.size() == 0) { cout << "NO" << endl; return 0; }
	// if(n==1) res.erase(res.begin());
	cout << res.size() << endl;
	Rep(i,res.size()) cout << res[i] << endl;
	return 0;	
}

Download