0017 - Suma divizorilor 2

De la Universitas MediaWiki
Versiunea din 19 martie 2023 20:07, autor: Cuceu Andrei (discuție | contribuții) (Pagină nouă: ==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 '''...)
(dif) ← Versiunea anterioară | Versiunea curentă (dif) | Versiunea următoare → (dif)

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)}")