0116 - Medie Prime

From Bitnami MediaWiki
Revision as of 14:51, 18 March 2023 by Paul Matei (talk | contribs) (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 &...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

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

<syntaxhighlight lang="python" line> def validare_date_numar(numar):

   flag = False
   if numar.isdigit():
       if 0 <= int(numar) <= 1000:
           flag = True
   return flag


def validare_date_numere(n):

   flag = False
   if 0 <= int(n) <= 10000:
       flag = True
   return flag

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 = int(input("Introduceti numarul de elemente: "))
   numere = list(map(int, input("Introduceti numerele separate prin spatiu: ").split()))
   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!")

</syntaxhighlight>