0114 - FNumarDivizoriImpari: Difference between revisions

From Bitnami MediaWiki
Pagină nouă: ==Cerinţa== Să se scrie o funcție Python care să determine numărul divizorilor impari ai unui număr natural transmis ca parametru. Funcția întoarce rezultatul prin intermediul unui parametru de ieşire. ==Restricţii şi precizări== *numele funcției va fi '''nr_div_imp''' *funcția va avea doi parametri, reprezentând numărul pentru care se calculează numarul divizorilor *impari, respectiv valoarea calculată *numărul pentru care se calculează numărul diviz...
 
Line 28: Line 28:
     return result
     return result


n = int(input("Introduceti numarul n: "))
if __name__ == '__main__':
result = nr_div_imp(n)
    n = int(input("Introduceti numarul n: "))
if result == -1:
    result = nr_div_imp(n)
    print("Numarul introdus nu este valid.")
    if result == -1:
else:
        print("Numarul introdus nu este valid.")
    print("Numarul de divizori impari ai lui", n, "este:", result)
    else:
        print("Datele de intrare sunt corecte.")
        print("Numarul de divizori impari ai lui", n, "este:", result)


</syntaxhighlight>
</syntaxhighlight>

Revision as of 19:30, 2 April 2023

Cerinţa

Să se scrie o funcție Python care să determine numărul divizorilor impari ai unui număr natural transmis ca parametru. Funcția întoarce rezultatul prin intermediul unui parametru de ieşire.


Restricţii şi precizări

  • numele funcției va fi nr_div_imp
  • funcția va avea doi parametri, reprezentând numărul pentru care se calculează numarul divizorilor *impari, respectiv valoarea calculată
  • numărul pentru care se calculează numărul divizorilor impari va fi mai mare decât 1 și mai mic decât 2.000.000.000


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 nr_div_imp(n):

   if n <= 1 or n >= 2000000000:
       return -1
   result = 0
   for i in range(1, n+1, 2):
       if n % i == 0:
           result += 1
   return result

if __name__ == '__main__':

   n = int(input("Introduceti numarul n: "))
   result = nr_div_imp(n)
   if result == -1:
       print("Numarul introdus nu este valid.")
   else:
       print("Datele de intrare sunt corecte.")
       print("Numarul de divizori impari ai lui", n, "este:", result)

</syntaxhighlight>