Informatică, întrebare adresată de Utilizator anonim, 8 ani în urmă

Cerinţa
Să se scrie un program care citeşte de la tastatură un număr natural n ş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 n, 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
0 < n < 1000;
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.
Intrare

5
8 7 5 9 11
Ieșire

7.66

Răspunsuri la întrebare

Răspuns de Mrincredible
1

#include <iostream>

#include <iomanip>

using namespace std;

bool prim(int a) {

   if (a % 2 == 0)

       return false ;

   for (int d = 3 ; d * d <= a ; d += 2) {

       if (a % d == 0)

           return false ;

   }

   return true ;

}

int main() {

   int n, i, j, a, sum = 0, cate = 0 ;

   cin >> n ;

   for (i = 1 ; i <= n ; ++ i) {

       cin >> a ;

       if (prim(a) == true)

           sum += a, cate ++ ;

   }

   int rez = (sum * 100) / cate ; /// in loc sa calculez 23 / 3 am facut

   ///2300 / 3 care da 766, pe care l-am impartit la 100

   cout << rez / 100 << "." << rez % 100 ;

   return 0 ;

}


Alte întrebări interesante