0017 - Suma divizorilor 2

From Bitnami MediaWiki
Revision as of 20:07, 19 March 2023 by Cuceu Andrei (talk | contribs) (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 '''...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

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>