c++算法:3891: 进制数

题目描述
小T学完了进制转换,觉着特别神气,这不?要求出一个进制转换的问题考考他。
问题是这样的:
写下一个10进制数N和B进制数M,已知M是N转成的B进制数,求B是多少?
输入
两个数N和M。(N<=20亿)
输出
一个整数B(B保证不超过20,且大于1),如果有多个答案正确,则按从小到大顺序输出20以内的答案,每行一个。
样例
输入 复制
6 110
输出 复制
2
提示

#include<iostream>
int To10(const std::string & num, int radix)
{
    int result = 0;
    int temp = 1;
    for (auto iter = num.rbegin(); iter != num.rend(); ++iter)
    {
        result += (*iter - '0') * temp;
        temp *= radix;
    }
    return result;
}
int main()
{
    int n;
    std::string m;
    std::cin >> n >> m;
    for (int b = 2; b <= 20; ++b)
    {
        if (To10(m, b) == n)
            std::cout << b << std::endl;
    }
    return 0;
}