#include #include #include 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 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'); } if (active == 2) --active; } char& last = result.back(); if (last == '0') last = '1'; for (auto it = result.rbegin(); it != result.rend(); ++it) { std::cout << *it; } std::cout << std::endl; return 0; }