4279 - Sum Cnt2: Diferență între versiuni

De la Universitas MediaWiki
Fără descriere a modificării
Linia 7: Linia 7:


== Date de ieșire ==  
== Date de ieșire ==  
Acest program citeste doua numere de la utilizator: '''n si k''', apoi solicita utilizatorului sa introduca '''n''' numere intregi. Programul calculeaza suma numerelor impare introduse si numarul de numere care sunt divizibile cu '''k'''. Dupa aceasta, programul valideaza ca n este mai mic sau egal cu 50 si ca '''k''' este mai mare decat 0, si afiseaza suma numerelor impare si numarul de numere care sunt divizibile cu '''k''' daca toate conditiile sunt indeplinite.
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.
 
Datele de iesire sunt cele doua valori: suma numerelor impare si numarul de numere care sunt divizibile cu '''k''', in cazul in care valorile citite pentru '''n si k''' sunt valide. Daca valorile citite pentru '''n si k''' nu sunt valide, programul afiseaza un mesaj de eroare corespunzator.


== Restricţii şi precizări ==
== Restricţii şi precizări ==

Versiunea de la data 26 martie 2023 15:22

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
68 1


Exemplul 2

Intrare
Introduceti numarul de numere: 100
Introduceti valoarea k: 4
Ieșire
n trebuie sa fie mai mic sau egal cu 50.


Rezolvare

#4279
def citeste_n():
    return int(input("Introduceti numarul de numere: "))


def citeste_k():
    return int(input("Introduceti valoarea k: "))


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("n trebuie sa fie mai mic sau egal cu 50.")
        return False
    if k <= 0:
        print("k trebuie sa fie mai mare decat 0.")
        return False
    return True


if __name__ == '__main__':
    n = citeste_n()
    k = citeste_k()

    if valideaza(n, k):
        suma_impare, contor_k = calculeaza_suma_impare_si_numarul_divizibile_cu_k(n, k)
        print(suma_impare, contor_k)