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
Răspuns:
#include <iostream>
using namespace std;
bool ciur[1000001];
int v[1001][1001], t[1000001];
int main()
{
ciur[0]=ciur[1]=1;
for(int i=2; i*i<=1000000; i++)//ciurul lui Eratostene
{
if(ciur[i]==0)
{
for(int j=i*i; j<=1000000; j+=i)
ciur[j]=1;
}
}
long long n, m, cnt=0, k=0;
cin>>n>>m;
for(int i=1; i<=n; i++)//Matricea
{
for(int j=1; j<=m; j++)
cin>>v[i][j];
}
for(int i=1; i<=n; i++)
{
for(int j=1; j<=m; j++)
{
if((i==1 || j==1 || i==n || j==m) && ciur[v[i][j]]==0)//conturul
cnt++;
if(ciur[v[i][j-1]]==0)//precedentul
{
k++;
t[k]=v[i][j];
}
}
}
cout<<cnt<<endl;
for(int i=1; i<=k; i++)
cout<<t[i]<<" ";
return 0;
}
Explicație:
100 de puncte