fbpx

Problema #405 – SumaCifreNrPrime – Rezolvari PBInfo

de Mihai-Alexandru

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ât 1.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

S-ar putea sa iti placa