// No.327 アルファベット列 // https://yukicoder.me/problems/no/327 // #include #include #include #include #include #include #include using namespace std; string solve(long long int N); int main() { std::cin.tie(nullptr); std::ios::sync_with_stdio(false); long long N; cin >> N; string ans = solve(N); cout << ans << endl; } string solve(long long int N) { vector acc; acc.push_back(0); for (int i = 1; i < 10; ++i) acc.push_back(acc[i-1] + pow(26, i)); int keta = upper_bound(acc.begin(), acc.end(), N) - acc.begin(); long long offset = N - acc[keta-1]; string ans = ""; for (int i = 0; i < keta; ++i) { int t = offset % 26; ans += 'A' + t; offset /= 26; } reverse(ans.begin(), ans.end()); return ans; }