# PBinfo #406 – SumCifPrim – Rezolvare C++

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

## Enunț

Cerinţa
Se dă un șir cu n numere  naturale. Determinați câte dintre ele sunt prime și au suma cifrelor un număr prim.

Date de intrare
Programul citește de la tastatură numărul n, iar apoi n numere naturale.

Date de ieşire
Programul afișează pe ecran numărul C, reprezentând rezultatul cerut.

Restricţii şi precizări

1 ≤ n ≤ 1000
cele n numere citite vor fi mai mici decât 1.000.000.000

Exemplu:
Intrare

6
83 36 53 401 90 7
Ieșire

3
Explicație
Dintre cele 6 numere citite sunt prime : 83 53 401 7. Dintre ele 83 401 7 au suma cifrelor număr prim, respectiv 11 5 7. În consecință, sunt 3 numere care respectă regula.

## Cod sursă C++

```cpp
#include <iostream>
using namespace std;
int sumcif(int n) {
    int s = 0;
    while (n) {
    	int cif = n % 10;
        s = s + cif;
        n = n / 10;
    } return s;
}
int prim(int n) {
    if (n < 2) return 0;
    if (n == 2) return 1;
    if (n % 2 == 0) return 0;
    for (int d = 3; d * d <= n; d = d + 2)
        if (n % d == 0)
        	return 0;
	return 1;
}
int main() {
	int n, contor = 0; cin >> n;
    for (int i = 1; i <= n; ++i) {
    	int temp; cin >> temp;
        if (prim(temp)) {
        	int scif = sumcif(temp);
        	if (prim(scif)) contor++;
        }        
    } cout << contor;
	return 0;
}
```

## Resurse

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