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

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 de aritonmihaim
1

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

Alte întrebări interesante