template<unsigned long long number, unsigned long long base>
struct ct_log {
enum {value=ct_log<number/base, base>::value+1};
};
template<unsigned long long base>
struct ct_log<0, base> {
enum {value=0};
};
#include <iostream>
int main() {
std::cout << ct_log<100000, 10>::value << '\n';
std::cout << ct_log<99999, 10>::value << '\n';
}
dGVtcGxhdGU8dW5zaWduZWQgbG9uZyBsb25nIG51bWJlciwgdW5zaWduZWQgbG9uZyBsb25nIGJhc2U+CnN0cnVjdCBjdF9sb2cgewogICAgZW51bSB7dmFsdWU9Y3RfbG9nPG51bWJlci9iYXNlLCBiYXNlPjo6dmFsdWUrMX07Cn07CnRlbXBsYXRlPHVuc2lnbmVkIGxvbmcgbG9uZyBiYXNlPgpzdHJ1Y3QgY3RfbG9nPDAsIGJhc2U+IHsKICAgIGVudW0ge3ZhbHVlPTB9Owp9OwoKI2luY2x1ZGUgPGlvc3RyZWFtPgppbnQgbWFpbigpIHsKICAgc3RkOjpjb3V0IDw8IGN0X2xvZzwxMDAwMDAsIDEwPjo6dmFsdWUgPDwgJ1xuJzsKICAgc3RkOjpjb3V0IDw8IGN0X2xvZzw5OTk5OSwgMTA+Ojp2YWx1ZSA8PCAnXG4nOwp9Cg==