0017 - Suma divizorilor 2

From Bitnami MediaWiki
Revision as of 20:40, 19 March 2023 by Vardai Erwin (talk | contribs)

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 validare(n, result):

   return 0 < int(n), int(result) < 2000000000


def sum_div(n, result):

   result = 0
   for i in range(1, n + 1):
       if n % i == 0:
           result += i
   return result


if __name__ == "__main__":

   n = input("Introduceți un număr: ")
   result = 0
   if validare(n, result):
       n = int(n)
       print("Datele introduse corespund restricțiilor impuse")
       print(f"Suma divizorilor lui {n} este: {sum_div(n, result)}")
   else:
       print("Datele introduse nu corespund restricțiilor impuse")

</syntaxhighlight>