285
Cerinţa
Se dă un șir cu n
numere naturale. Determinați suma tuturor cifrelor numerelor prime din șir.
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 S
, reprezentând suma tuturor cifrelor numerelor prime din șir.
Restricţii şi precizări
1 ≤ n ≤ 1000
- cele
n
numere citite vor fi mai mici decât1.000.000.000
.
Exemplu
Intrare
6 83 36 53 401 90 7
Ieșire
31
Explicație
Dintre cele 6
numere citite sunt prime : 83 53 401 7
. Suma cifrelor acestor numere este 31
.
#include <bits/stdc++.h> using namespace std; int prim(int n) { int cnt=0; for (int i = 1 ; i * i <= n ; ++i) { if (n%i==0) cnt+=2; if (i*i==n) cnt--; } if (cnt==2) return 1; else return 0; } int sum(int n) { int s=0; while (n) { s+=n%10; n/=10; } return s; } int main() { int n; cin >> n; int a[1001]; int s=0; for (int i = 0 ; i < n ; ++i) { cin >> a[i]; if (prim(a[i])) s+=sum(a[i]); } cout << s; }
Comentarii