358
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
nnumere 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