Se dă o matrice cu n linii și m coloane nr. Naturale. Se cere :
a) câte elemente prime sunt pe conturul matricii.
b) afișați elementele din matrice care sunt precedate de un număr prim.
Răspunsuri la întrebare
#include <iostream>
using namespace std;
int main()
{
int mat[15][20], i, j, n, m, nrcontur = 0, d, nrdiv;
bool ok = 0;
cout<<"Nr. de linii: "; cin>>n;
cout<<"Nr. de coloane: "; cin>>m;
for (i=0; i<n; i++)
for (j=0; j<m; j++)
cin>>mat[i][j];
for (j=0; j<m; j++)
{
d = 2;
nrdiv = 1;
while (mat[0][j] >= d)
{
if (mat[0][j] % d == 0)
nrdiv++;
d++;
}
if (nrdiv == 2)
nrcontur++;
}
for (i=1; i<n; i++)
{
d = 2;
nrdiv = 1;
while (mat[i][m-1] >= d)
{
if (mat[i][m-1] % d == 0)
nrdiv++;
d++;
}
if (nrdiv == 2)
nrcontur++;
}
for (j=0; j<m-1; j++)
{
d = 2;
nrdiv = 1;
while (mat[n-1][j] >= d)
{
if (mat[n-1][j] % d == 0)
nrdiv++;
d++;
}
if (nrdiv == 2)
nrcontur++;
}
for (i=n-2; i >= 1; i--)
{
d = 2;
nrdiv = 1;
while (mat[i][0] >= d)
{
if (mat[i][0] % d == 0)
nrdiv++;
d++;
}
if (nrdiv == 2)
nrcontur++;
}
cout<<"Nr. elem. prime de pe contur: "<<nrcontur;
cout<<endl<<"Elementele precedate de un nr. prim: ";
for (i=0; i<n; i++)
for (j=0; j<m; j++)
{
d = 2;
nrdiv = 1;
while (mat[i][j] >= d)
{
if (mat[i][j] % d == 0)
nrdiv++;
d++;
}
if (nrdiv == 2)
{
if (j == m-1 && ok == 0)
cout<<mat[i+1][0]<<' ';
else
cout<<mat[i][j+1]<<' ';
}
if (ok == 0)
if (i == n-1)
{
m--;
ok = 1;
}
}
return 0;
}