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

#774 ElimLinii (Pbinfo.ro)

Cerința :
Se dă o matrice cu n linii si m coloane si elemente numere naturale. Să se elimine din matrice toate liniile care încep cu un număr prim și apoi să se afișeze matricea.

Date de intrare :
Programul citește de la tastatură numerele n si m, iar apoi n * m numere naturale, separate prin spatii, reprezentând elementele matricei, linie cu linie.

Date de ieșire :

Programul afișează pe ecran elementele matricei transformate, câte o linie a matricei pe o linie a ecranului, elementele de pe o linie fiind separate prin câte un spațiu.

Restricții si precizări :

=> 1 ≤ m, n ≤ 100
=> elementele matricei vor fi mai mici decât 1.000.000

Exemplu:

Date de intrare:

4 6
4 20 15 23 18 9
17 15 13 18 12 1
15 8 23 23 14 18
3 18 8 23 12 15

Date de ieșire:

4 20 15 23 18 9
15 8 23 23 14 18

Răspunsuri la întrebare

Răspuns de boiustef
1

Răspuns:

#include <iostream>

using namespace std;

int b[101][101], c[101][101];

int prim (int x)

{

  int p=1, t;

  if (x<2) p=0;

  else if (x==2) p=1;

       else

       {

           if (x%2==0) p=0;

           else

           {

              for (t=3; t*t<=x && p; ++t)

                   if (x%t==0) p=0;

           }

       }

     return p;

}

int main()

{

   int n, m, k=0, i, j;

   cin >> n >> m;

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

       for (j=1; j<=m; ++j)

           cin >> b[i][j];

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

   {

       if (!prim(b[i][1]))

       {

          ++k;

          for (j=1; j<=m; ++j)

               c[k][j]=b[i][j];

       }

   }

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

       {for (j=1; j<=m; ++j)

           cout << c[i][j] << " ";

         cout << "\n";

       }

   return 0;

}

Explicație:

Alte întrebări interesante