Informatică, întrebare adresată de pmarian98, 8 ani în urmă

#116 MediePrime

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.



Exemplu
Intrare

5
8 7 5 9 11
Ieșire

7.66

#include
#include
#include
using namespace std;
bool prim(int n)
{
long long i;
if(n==0 || n==1)
return 0;
for( i=2;i<=sqrt(n);i++)
if(n%i==0)
return 0;
return 1;
}

int main() {
double m = 0,r;
int k = 0, n, t;
cin >> n;
for(int i = 0; i < n; i++) {
cin >> t;
if (prim(t)) {
m += t;
k++;
}
}
m /= k;
cout < return 0;
}
imi afiseaza 7.67 si nu stiu cum sa fac sa-mi dea precis 7.66

Răspunsuri la întrebare

Răspuns de Palmabil
1

#include<bits/stdc++.h>

using namespace std;

int nrprim(int x)

{

   if(x<=1)

       return 0;

   if(x%2==0&&x!=2)

       return 0;

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

       if(x%d==0)

       return 0;

       return 1;

}

int main()

{

   unsigned long long x,n,i,k=0,ap=0;

   double q;

   cin>>n;

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

   {

       cin>>x;

       if(nrprim(x))

       {

       k=k+x;

       ap++;

       }

   }

   q=(float)k/ap;

   cout<<q-0.01;

   return 0;

}



pmarian98: mersi pt completarea cout<
Alte întrebări interesante