0116 - Medie Prime: Diferență între versiuni
De la Universitas MediaWiki
(Pagină nouă: == 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 &...) |
|||
Linia 21: | Linia 21: | ||
<syntaxhighlight lang="python" line> | <syntaxhighlight lang="python" line> | ||
def validare_date_numar(numar): | def validare_date_numar(numar): | ||
if numar.isdigit(): | if numar.isdigit(): | ||
if 0 <= int(numar) <= 1000: | if 0 <= int(numar) <= 1000: | ||
return True | |||
return | return False | ||
def validare_date_numere(n): | def validare_date_numere(n): | ||
if n.isdigit(): | |||
if 0 <= int(n) <= 10000: | |||
return True | |||
return | return False | ||
def is_prime(numar): | def is_prime(numar): | ||
Linia 50: | Linia 48: | ||
if __name__ == "__main__": | if __name__ == "__main__": | ||
n = | 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: | else: | ||
print(" | print("Numarul de elemente introdus nu corespunde cu restrictiile impuse.") | ||
</syntaxhighlight> | </syntaxhighlight> |
Versiunea de la data 19 martie 2023 20:20
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;
- în toate testele, 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.66
Rezolvare
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.")