#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:
#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: