4279 - Sum Cnt2: Difference between revisions

From Bitnami MediaWiki
Dragos1234 (talk | contribs)
Dragos1234 (talk | contribs)
Line 38: Line 38:
<syntaxhighlight lang="python" line>
<syntaxhighlight lang="python" line>
#4279
#4279
def citeste_n():
    return int(input("Introduceti numarul de numere: "))
def citeste_k():
    return int(input("Introduceti valoarea k: "))
def este_impar(numar):
def este_impar(numar):
     return numar % 2 == 1
     return numar % 2 == 1
Line 70: Line 62:
def valideaza(n, k):
def valideaza(n, k):
     if n > 50:
     if n > 50:
         print("n trebuie sa fie mai mic sau egal cu 50.")
         print("Datele introduse nu corespund cerintelor.")
         return False
         return False
     if k <= 0:
     if k <= 0:
         print("k trebuie sa fie mai mare decat 0.")
         print("Datele introduse nu corespund cerintelor.")
         return False
         return False
     return True
     return True
Line 79: Line 71:


if __name__ == '__main__':
if __name__ == '__main__':
     n = citeste_n()
     n = int(input("Introduceti numarul de numere: "))
     k = citeste_k()
     k = int(input("Introduceti valoarea k: "))


     if valideaza(n, k):
     if valideaza(n, k):
         suma_impare, contor_k = calculeaza_suma_impare_si_numarul_divizibile_cu_k(n, k)
         suma_impare, contor_k = calculeaza_suma_impare_si_numarul_divizibile_cu_k(n, k)
        print("Datele introduse corespund cerintelor.")
         print(suma_impare, contor_k)
         print(suma_impare, contor_k)


</syntaxhighlight>
</syntaxhighlight>


==Explicatie rezolvare==
==Explicatie rezolvare==

Revision as of 15:26, 26 April 2023

Sursa: [1]

Cerinţa

Se citesc de la tastatură numerele n k, apoi n numere naturale. Să se determine suma celor impare și câte dintre ele se divid cu k.

Date de intrare

Programul citește de la tastatură numerele n k, apoi n numere naturale.

Date de ieșire

Dacă datele sunt introduse corect, pe ecran se va afișa: " Datele de intrare corespund restrictiilor impuse", apoi pe un rand nou va afișa valoarea cerută. În caz contrar, se va afișa mesajul:" Datele de intrare nu corespund restrictiilor impuse.

Restricţii şi precizări

  • n ⩽ 50
  • numerele citite vor fi mai mici decât 10000
  • k > 0

Exemplul 1

Intrare
Introduceti numarul de numere: 4
Introduceti valoarea k: 3
Introduceti un numar: 104
Introduceti un numar: 63
Introduceti un numar: 22
Introduceti un numar: 5
Ieșire
Datele introduse corespund cerintelor.
68 1


Exemplul 2

Intrare
Introduceti numarul de numere: 100
Introduceti valoarea k: 4
Ieșire
Datele introduse nu corespund cerintelor.


Rezolvare

<syntaxhighlight lang="python" line>

  1. 4279

def este_impar(numar):

   return numar % 2 == 1


def se_divide_cu_k(numar, k):

   return numar % k == 0


def calculeaza_suma_impare_si_numarul_divizibile_cu_k(n, k):

   suma_impare = 0
   contor_k = 0
   for i in range(n):
       numar = int(input("Introduceti un numar: "))
       if este_impar(numar):
           suma_impare += numar
       if se_divide_cu_k(numar, k):
           contor_k += 1
   return suma_impare, contor_k


def valideaza(n, k):

   if n > 50:
       print("Datele introduse nu corespund cerintelor.")
       return False
   if k <= 0:
       print("Datele introduse nu corespund cerintelor.")
       return False
   return True


if __name__ == '__main__':

   n = int(input("Introduceti numarul de numere: "))
   k = int(input("Introduceti valoarea k: "))
   if valideaza(n, k):
       suma_impare, contor_k = calculeaza_suma_impare_si_numarul_divizibile_cu_k(n, k)
       print("Datele introduse corespund cerintelor.")
       print(suma_impare, contor_k)

</syntaxhighlight>

Explicatie rezolvare