4279 - Sum Cnt2: Diferență între versiuni

De la Universitas MediaWiki
Fără descriere a modificării
Linia 31: Linia 31:
; Intrare
; Intrare
: Introduceti numarul de numere: 100
: Introduceti numarul de numere: 100
: Introduceti valoarea k:
: Introduceti valoarea k: 4
; Ieșire
; Ieșire
: '''n''' trebuie sa fie mai mic sau egal cu 50.
: '''n''' trebuie sa fie mai mic sau egal cu 50.

Versiunea de la data 26 martie 2023 13:44

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

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.

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

  • 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)