def quersumme(n): digitsList=list(str(n)); return (len(digitsList), sum((map(int,digitsList)),0)); # end def if True: maxPot=9; # 8 dauert eine Weile for (pot,nb) in ((nx,2**(10**nx)) for nx in range(maxPot)): # 0 .. maxPot-1 (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); # end for # end if 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; # end def if True: outStr='Zif:'+' '*4+'|'; for ix in range(10): outStr=outStr+'{0:7} |'.format(ix); print(outStr); print('-'*99); maxPot=7; # 8 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); # end for # end if