0017 - Suma divizorilor 2
Cerință
Să se scrie o funcție Python care să determine suma divizorilor unui număr natural transmis ca parametru. Funcția întoarce rezultatul prin intermediul unui parametru de ieşire.
Restricții de precizări
- Numele funcției va fi sum_div
- Funcția va avea doi parametri, reprezentând numărul pentru care se calculează suma
- divizorilor,respectiv valoarea calculată
- Valorile celor doi parametri vor fi numere naturale nenule mai mici decât 2000000000
Important
Soluţia propusă va conţine doar definiţia funcţiei cerute. Prezenţa în soluţie a altor instrucţiuni poate duce erori de compilare sau de execuţie care vor avea ca efect depunctarea soluţiei.
Rezolvare
Rezolvare ver. 1
<syntaxhighlight lang="python" line="1" start="1">
def sum_div(n, result):
"""Calculează suma divizorilor unui număr natural.""" if not isinstance(n, int) or not isinstance(result, int): raise TypeError("Ambele parametri trebuie să fie numere întregi.") if n <= 0: raise ValueError("Numărul trebuie să fie pozitiv.") result = 0 for i in range(1, n+1): if n % i == 0: result += i return result
if __name__ == "__main__":
n = int(input("Introduceți un număr: ")) result = 0 print(f"Suma divizorilor lui {n} este: {sum_div(n, result)}")
</syntaxhighlight>