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

#666 NrPrime

Cerința
Se dă o matrice cu n linii și m coloane și elemente numere naturale. Să se determine câte dintre elementele situate pe linii cu indici pari sunt prime.

Date de intrare
Programul citește de la tastatură numerele n m, iar apoi n șiruri cu câte m numere naturale, reprezentând elementele matricei.

Date de ieșire
Programul va afișa pe ecran numărul C, reprezentând valoarea căutată.

Restricții și precizări
1 ≤ n , m ≤ 100
elementele matricei sunt numere naturale mai mici decât 1.000.000
liniile matricei sunt numerotate de 1 la n, iar coloanele de la 1 la m



Exemplu
Intrare

4 3
5 12 10
3 9 1
7 10 1
10 9 3
Ieșire

2
Explicație
Cele 2 valori prime determinate sunt cele îngroșate mai jos:

5 12 10
3 9 1
7 10 1
10 9 3

Imi da de fiecare data error "Caught fatal signal 11"
Uite codul:

#include
using namespace std;
int prim(int x){
int d;
if(x==0||x==1||(x%2==0&&x!=2))
return 1;
for(d=3;d*d<=x;d+=2)
if(x%d==0)
return 1;
return 0;
}
int main()
{
int n,m,c=0;
cin>>n>>m;
int a[100][100];
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
cin>>a[i][j];

for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
if(prim(a[i][j])==0 && i%2==0)
c++;
}
cout< return 0;
}

//as vrea sa-l faci sa-mi dea 100% pe pbinfo ;D

Răspunsuri la întrebare

Răspuns de boiustef
2

#include <iostream>

using namespace std;

int a[100][100];

int prim(int m)

{

   int p=1;

   if (m<2) p=0;

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

        else

        {

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

            else

            {

                for (int k=3; k*k<=m && p; ++k)

                   if (m%k==0) p=0;

            }

        }

   return p;

}

int main()

{

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

   cin >> n >> m;

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

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

           cin >> a[i][j];

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

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

           if (prim(a[i][j])) ++c;

   cout << c << endl;

   return 0;

}


pmarian98: Mersi
pmarian98: este de elita
pmarian98: eu il maream si pe j cu 2
pmarian98: aici greseam
boiustef: da... e aproape acelasi cod ... :)))
pmarian98: aproape :)
pmarian98: mersi din nou
Alte întrebări interesante