4279 - Sum Cnt2: Difference between revisions
Dragos1234 (talk | contribs) |
Dragos1234 (talk | contribs) |
||
Line 7: | Line 7: | ||
== Date de ieșire == | == Date de ieșire == | ||
Programul | 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 == |
Revision as of 14:23, 25 March 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
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
<syntaxhighlight lang="python" line>
- 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)
</syntaxhighlight>