#include #include #include typedef unsigned long long int_t; constexpr int F = 10; std::vector make_factorials() { std::vector factorials(10); factorials[0] = 1; for (int i = 1; i < F; ++i) { factorials[i] = factorials[i-1] * i; } return factorials; } int main() { std::ios::sync_with_stdio(false); int_t y; std::cin >> y; auto f = make_factorials(); std::string result; for (int active = 9; active >= 0; --active) { while (y >= f[active]) { y -= f[active]; result.push_back(active + '0'); } } for (auto it = result.rbegin(); it != result.rend(); ++it) std::cout << *it; std::cout << std::endl; return 0; }