4279 - Sum Cnt2: Diferență între versiuni

De la Universitas MediaWiki
Linia 7: Linia 7:


== Date de ieșire ==  
== Date de ieșire ==  
Programul va afișa pe ecran, mesajul "Datele introduse corespund cerințelor" și pe o linie nouă numărul '''P''' , reprezentând produsul primelor '''n''' pătrate perfecte nenule, în caz contrar programul va afișa pe o linie noua mesajul "Datele introduse nu corespund cerintelor."
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 ==
== Restricţii şi precizări ==

Versiunea de la data 25 martie 2023 14:23

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