Se citeste o matrice a cu m linii si n coloane. Sa se afiseze:
a. Produsul elementelor prime aflate pe ultima coloana
b. Media aritmetica a valorilor strict pozitive aflate pe linii pare
c. Media aritmetica a valorilor aflate pe linii si coloane numere prime
Răspunsuri la întrebare
Răspuns:
Explicație:
#include <iostream>
using namespace std;
int m,n,i,j, t[100][100];
bool prim(int x)
{
int p=1;
if (x<0) x=-x;
if (x<2) p=0;
if (x>2)
{
if (x%2==0) p=0;
else
{
for (int j=3; j*j<=x; ++j)
if (x%j==0) p=0;
}
}
return p;
}
int main()
{
cout << "nr. de linii m= ", cin >> m;
cout << "nr. de coloane n= "; cin >> n;
cout << "introdu matricea: " << endl;
for (i=1; i<=m; ++i)
for (j=1; j<=n; ++j)
cin >> t[i][j];
int prod=1, existaprime=0;
for (i=1; i<=m; ++i)
if (prim(t[i][n])) { existaprime=1; prod=prod*t[i][n]; }
cout << "a) Produsul elementelor prime de pe ultima coloana este ";
if (existaprime) cout << prod;
else cout << " nu exista prime...";
cout << "\n";
int sumapoz=0, nrpoz=0;
for (i=2; i<=n; i+=2)
{
for (j=1; j<=n; ++j)
if (t[i][j]>0) {sumapoz+=t[i][j]; ++nrpoz;}
}
cout << "b) Media aritmetica a valorilor pozitive de pe linii pare: ";
if (nrpoz==0) cout << " nu exista pozitive...";
else
{
float medpoz=(float)sumapoz/nrpoz;
cout << medpoz;
}
cout << "\n";
int suma=0, nr=0;
for (i=1; i<=m; ++i)
{
for (j=1; j<=n; ++j)
{
if (prim(i) && prim(j)) { suma+=t[i][j]; ++nr; }
}
}
cout << "c) Media aritmetica a valorilor aflate pe linii si coloane numere prime: ";
if (nr==0) cout << "nu exista...";
else cout << 1.0*suma/nr;
}