# PBinfo #667 – nrprime1 – Rezolvare C++

Sursa: Codul lui Andrei
Limbaj: C++
Autor rezolvare: andrei

## Enunț

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 coloane cu indici impari 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 ≤ 600
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 2 10
3 9 1
7 10 1
10 19 3
Ieșire

4
Explicație
Cele 4 valori prime determinate sunt cele evidențiate mai jos:


 5 
 2 
 10 


 3 
  9 
  1 


 7 
 10 
  1 


10 
  19 
 3 



Observăm că matricea conține și alte elemente prime, dar ele nu sunt situate pe coloane cu indici impari.

## Cod sursă C++

```cpp
#include <bits/stdc++.h>
using namespace std;
bool prim(int n) {
    if (n < 2) return false;
    if (n == 2) return true;
    if (n % 2 == 0) return false;
    for (int d = 3; d * d <= n; d = d + 2) {
        if (n % d == 0)
        	return false;
    } return true;
}
int main() {
    int mat[601][601], n, m, nr = 0;
    cin >> n >> m;
    for (int i = 1; i <= n; ++i)
        for (int j = 1 ; j <= m ; ++j)
            cin >> mat[i][j];
    for (int i = 1; i <= n; ++i)
    	for (int j = 1; j <= m; j = j + 2)
    		if (prim(mat[i][j]) == true)
    			nr++;
    cout << nr;
    return 0;
}
```

## Resurse

- [Pagina originală](https://codulluiandrei.ro/rezolvari/pbinfo/667)
- [Sursa C++](https://codulluiandrei.ro/rezolvari/pbinfo/667/cod.cpp)
- [Sursa pe GitHub](https://raw.githubusercontent.com/codulluiandrei/pbinfo/main/pbinfo-667/main.cpp)
- [Cursuri de informatică pentru BAC](https://codulluiandrei.ro/academia/info-curs/pachet-cpp/)
