from math import log10,ceil;
class InvalidDataError(Exception):
def __init__(self,data):
self.Data=data;
cb=log10(2);
def getPot(n):
pot=ceil(n.bit_length()*cb);
if (n-10**pot) < 0 and (n-10**(pot-1)) >= 0:
return pot-1;
elif (n-10**(pot-1)) < 0 and (n-10**(pot-2)) > 0:
return pot-2;
else:
raise InvalidDataError('No power number');
def getDigit(pot,n):
dig=0;
while (n-dig*10**pot) >= 0:
dig+=1;
return dig-1;
def getSumOfDigists(n):
qs=0;
maxPot=getPot(n);
pot=maxPot;
while n>0:
dig=0;
while (n-dig*10**pot) >= 0:
dig+=1;
dig+=-1;
qs+=dig;
n=n-dig*10**pot
pot-=1;
return qs;
qs=getSumOfDigists(2**(10**5));
print(qs);