0116 - Medie Prime: Difference between revisions
Diana Butuza (talk | contribs) |
Paul Matei (talk | contribs) No edit summary |
||
Line 68: | Line 68: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
==Explicație rezolvare== | |||
Acesta este un script în Python care primește o listă de numere întregi de la utilizator și apoi calculează media aritmetică a numerelor prime din acea listă. | |||
Scriptul începe prin definirea a trei funcții: | |||
1.'''validare_date_numar(numar)''': Această funcție verifică dacă un șir de caractere numar dat poate fi convertit la un număr întreg între 0 și 1000. Ea returnează '''True''' dacă condiția este satisfăcută și '''False''' în caz contrar. | |||
2.'''validare_date_numere(n)''': Această funcție verifică dacă un șir de caractere n dat poate fi convertit la un număr întreg între 0 și 10000. Ea returnează '''True''' dacă condiția este satisfăcută și '''False''' în caz contrar. | |||
3.'''is_prime(numar)''': Această funcție verifică dacă un număr întreg dat numar este un număr prim. Ea returnează '''True''' dacă numărul este prim și '''False''' în caz contrar. | |||
După definirea acestor funcții, scriptul verifică dacă introducerea primită de la utilizator este validă, apoi calculează media aritmetică a numerelor prime din lista utilizând funcția '''avg_prime'''. Dacă nu există numere prime în listă, scriptul returnează un mesaj care indică acest lucru. | |||
În ansamblu, scriptul este bine structurat și utilizează funcții pentru a separa diferite funcționalități. Validarea introducerii este de asemenea bine gestionată, ceea ce asigură că programul nu se va bloca dacă utilizatorul introduce date invalide. |
Revision as of 10:50, 6 April 2023
Cerinţa
Să se scrie un program care citeşte de la tastatură un număr natural numar şi apoi un şir de n numere naturale şi determină media aritmetică a celor prime.
Date de intrare
Programul citește de la tastatură numărul numar, iar apoi n numere naturale..
Date de ieşire
Programul afișează pe ecran numărul M, reprezentând media aritmetică a valorilor prime.
Restricții și precizări
- numar ∈ Ν
- 0 ⩽ n ⩽ 1.000
- cele n numere citite vor fi mai mici decât 10000
- rezultatul se va afişa cu cel puțin două zecimale exacte
- printre cele n numere va exista cel puțin un număr prim
Exemplu
- Intrare
- 5
- 8 7 5 9 11
- Ieșire
- Datele introduse corespund restricțiilor impuse.
- 7.666666666666667
Rezolvare
<syntaxhighlight lang="python" line> def validare_date_numar(numar):
if numar.isdigit(): if 0 <= int(numar) <= 1000: return True return False
def validare_date_numere(n):
if n.isdigit(): if 0 <= int(n) <= 10000: return True return False
def is_prime(numar):
if numar < 2: return False for i in range(2, int(numar ** 0.5) + 1): if numar % i == 0: return False return True
def avg_prime(numere):
prime_numere = [numar for numar in numere if is_prime(numar)] if len(prime_numere) > 0: return sum(prime_numere) / len(prime_numere) else: return None
if __name__ == "__main__":
n = input("Introduceti numarul de elemente: ") if validare_date_numere(n): print("Datele de intrare corespund restricțiilor impuse.") numere = list(map(int, input("Introduceti numerele: ").split())) if validare_date_numere(str(len(numere))): print("Datele de intrare corespund restricțiilor impuse.") result = avg_prime(numere) if result is not None: print("Media aritmetica a numerelor prime din lista este:", result) else: print("Nu exista numere prime in lista!") else: print("Numarul de numere introdus nu corespunde cu numarul specificat anterior.") else: print("Numarul de elemente introdus nu corespunde cu restrictiile impuse.")
</syntaxhighlight>
Explicație rezolvare
Acesta este un script în Python care primește o listă de numere întregi de la utilizator și apoi calculează media aritmetică a numerelor prime din acea listă.
Scriptul începe prin definirea a trei funcții:
1.validare_date_numar(numar): Această funcție verifică dacă un șir de caractere numar dat poate fi convertit la un număr întreg între 0 și 1000. Ea returnează True dacă condiția este satisfăcută și False în caz contrar.
2.validare_date_numere(n): Această funcție verifică dacă un șir de caractere n dat poate fi convertit la un număr întreg între 0 și 10000. Ea returnează True dacă condiția este satisfăcută și False în caz contrar.
3.is_prime(numar): Această funcție verifică dacă un număr întreg dat numar este un număr prim. Ea returnează True dacă numărul este prim și False în caz contrar.
După definirea acestor funcții, scriptul verifică dacă introducerea primită de la utilizator este validă, apoi calculează media aritmetică a numerelor prime din lista utilizând funcția avg_prime. Dacă nu există numere prime în listă, scriptul returnează un mesaj care indică acest lucru.
În ansamblu, scriptul este bine structurat și utilizează funcții pentru a separa diferite funcționalități. Validarea introducerii este de asemenea bine gestionată, ceea ce asigură că programul nu se va bloca dacă utilizatorul introduce date invalide.