0017 - Suma divizorilor 2
De la Universitas MediaWiki
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
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)}")