Somma delle cifre

Le cifre di un numero minore di 100

n      = int(input("n = "))  # 89
decine = n // 10             # 8
unità  = n %  10             # 9

print(decine, unità)

Le cifre di un numero minore di 1000

n         = int(input("n = "))  # 892
centinaia = n // 100            # 8
x         = n // 10             # 89
decine    = x %  10             # 9
unità     = n %  10             # 2

print(centinaia, decine, unità)

oppure

...
unità     = n %  10  # 2
n         = n // 10  # 89
decine    = n %  10  # 9
centinaia = n // 10  # 8      

print(centinaia, decine, unità)

Il resto della divisione per 10 restituisce la cifra delle unità e il quoziente della divisone intera per 10 restituisce le cifre rimanenti.

Stampa le cifre di un numero qualsiasi, dalla meno significativa alla più significativa

...
while(n != 0):
    cifra = n % 10
    print(cifra)
    #-------------
    n = n // 10

Calcoli con le cifre

Calcola la somma delle cifre

...
somma = 0
while(n != 0):
    cifra = n % 10
    somma += cifra        
    #-------------
    n = n // 10

print(somma)

Calcola la somma dei quadrati delle cifre

...
somma = 0
while(n != 0):
    cifra = n % 10
    somma += cifra**2        
    #----------------
    n = n // 10

print(somma)

Calcola la somma dei cubi delle cifre

???

Calcola il prodotto delle cifre

???

Radice numerica

Wikipedia > Radice numerica

Si calcola la somma delle cifre e si ripete l’operazione finché non si ottiene un numero minore di 10.
Il valore finale si chiama radice numerica del numero.

...
while(n >= 10):
    #-----------------
    somma = 0
    while(n != 0):
        cifra = n % 10
        somma += cifra       
        n = n // 10
    #-----------------
    n = somma
 
print(n)

Prova a sommare i quadrati / cubi delle cifre

???

Radice numerica moltiplicativa

Wikipedia > Radice numerica moltiplicativa

Come la radice numerica ma le cifre si moltiplicano

...
while(n >= 10):
    #-----------------
    prodotto = 1
    while(n != 0):
        cifra = n % 10
        prodotto *= cifra       
        n = n // 10
    #-----------------
    n = prodotto
 
print(n)

Persistenza di un numero

Wikipedia > Persistenza di un numero

Quanti passi sono necessari per arrivare a un valore fisso?

???