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

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

Răspuns de Sergetec
0

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;

}

Alte întrebări interesante