def quersumme(n):
digitsList=list(str(n));
return (len(digitsList),
sum((map(int,digitsList)),0));
if True:
maxPot=9;
for (pot,nb) in ((nx,2**(10**nx)) for nx in range(maxPot)):
(zz,qs)=quersumme(nb);
potS='Potenz {0:2} | '.format(pot);
zzS= 'Ziffernzahl {0:8} | '.format(zz);
qsS= 'Quersumme:{0:10}'.format(qs);
print(potS+zzS+qsS);
def ziffernInQuersumme(n):
digitsMap={ix : 0 for ix in range(0,10)};
digitsList=map(int,list(str(n)));
for d in digitsList:
digitsMap[d]+=1;
return digitsMap;
if True:
outStr='Zif:'+' '*4+'|';
for ix in range(10):
outStr=outStr+'{0:7} |'.format(ix);
print(outStr);
print('-'*99);
maxPot=7;
for (pot,nb) in ((nx,2**(10**nx)) for nx in range(maxPot)):
ziffernMap=ziffernInQuersumme(nb);
countList=[ziffernMap[key] for key in sorted(ziffernMap.keys())];
outStr='Pot: {0:2} |'.format(pot);
for ct in countList:
outStr=outStr+'{0:7} |'.format(ct);
print(outStr);