Arrel digital

Donat un nombre natural, n, es defineix la seva arrel digital com el resultat de sumar els dígits que el componen tot iterant el procés amb el nou nombre fins arribar a un nombre d’un sol dígit. Aquest dígit s’anomena l’arrel digital de n. Per exemple,

\(374 \Rightarrow 3 + 4 + 7 = 14 \Rightarrow 1 + 4 = 5 \Rightarrow arrel\_digital(374) = 5\)

Desa totes les funcions al mateix fitxer: arreldigital.py

  1. Dissenya la funció suma_digits() que donat un enter, n, retorna la suma dels seus dígits. Exemples:

    >>> suma_digits(374)
    14
    >>> suma_digits(14)
    5
    >>> suma_digits(10001)
    2
    

    Nota

    Pots descarregar el fitxer amb tests suma_digits.txt

  2. Dissenya la funció arrel_digital() que a partir d’un enter, n, retorna la seva arrel digital. Aquesta funció ha de cridar l’anterior, suma_digits(). Exemples:

    >>> arrel_digital(7)
    7
    >>> arrel_digital(26)
    8
    >>> arrel_digital(374)
    5
    >>> arrel_digital(69870)
    3
    >>> arrel_digital(9898999887998978799)
    6
    

    Nota

    Pots descarregar el fitxer amb tests arrel_digital.txt

  3. Dissenya la funció es_arrel_digital() que donats dos enters, n i r, retorni True si r és l’arrel digital de n o False altrament. Aquesta funció ha de cridar l’anterior. Exemples:

    >>> es_arrel_digital(7, 7)
    True
    >>> es_arrel_digital(26, 8)
    True
    >>> es_arrel_digital(26, 6)
    False
    >>> es_arrel_digital(374, 5)
    True
    

    Nota

    Pots descarregar el fitxer amb tests es_arrel_digital.txt

  4. Dissenya la funció es_suma_parcial() que donats dos enters, n i p, retorna True si p és una suma parcial obtinguda en el procés de calcular l’arrel digital de n o False, altrament. Per exemple: les sumes parcials de 374 són 14 i 5. Pel disseny d’aquesta funció us poseu basar en el disseny de la funció arrel_digital(). Exemples:

    >>> es_suma_parcial(26, 8)
    True
    >>> es_suma_parcial(9, 9)
    False
    >>> es_suma_parcial(2634, 15)
    True
    >>> es_suma_parcial(2634, 6)
    True
    

    Nota

    Pots descarregar el fitxer amb tests es_suma_parcial.txt

Solució

Disposeu de solucions al fitxer arreldigital.py.