Se tastează x și y doua numere naturale, apoi x*y numere întregi, într-o matrice m. Să se calculeze și să se afișeze:
a) Produsul nr. Impare din matrice
b) Toate nr, prime din matrice
c) Media aritmetică dintre suma ultimelor cifre ale numerelor de pe rândul k al matricei (k se va tasta), produsul numerelor pozitive divizibile cu 3 și numarul de numere pare și pozitive.
Răspunsuri la întrebare
Salut!
Ai rezolvarea in C++ mai jos
#include <iostream>
using namespace std;
bool prim(int n)
{
if (n <= 1)
{
return false;
}
else if (n != 2 && n % 2 == 0)
{
return false;
}
for (int i = 3; i * i <= n; i += 2)
{
if (n % i == 0)
{
return false;
}
}
return true;
}
int main()
{
int x, y, m[51][51];
cin >> x >> y;
int p = 1, p2 = 1, s = 0, cnt = 0, k;
for (int i = 1; i <= x * y; ++i)
{
for (int j = 1; j <= x * y; ++j)
{
cin >> m[i][j];
}
}
//Prod numere impare
for (int i = 1; i <= x * y; ++i)
{
for (int j = 1; j <= x * y; ++j)
{
if (m[i][j] % 2 != 0)
{
p *= m[i][j];
}
}
}
cout << p << '\n';
//Nr prime
for (int i = 1; i <= x * y; ++i)
{
for (int j = 1; j <= x * y; ++j)
{
if (prim(m[i][j]))
{
cout << m[i][j];
}
}
}
cout << '\n';
cin >> k;
for (int i = 1; i <= x * y; ++i)
{
for (int j = 1; j <= x * y; ++j)
{
if (i == k)
{
s += m[i][j]/10;
}
if (m[i][j] > 0 && m[i][j] % 3 == 0)
{
p2 *= m[i][j];
}
if (m[i][j] > 0 && m[i][j] % 2 == 0)
{
cnt++;
}
}
}
cout << (s + p2 + cnt)/3;
return 0;
}