fbpx

Problema #3351 – Prime3 – Rezolvari PBInfo

de Mihai-Alexandru

Cerința

Se dau n numere naturale. Determinați suma celor prime.

Date de intrare

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

Date de ieșire

Programul va afișa pe ecran numărul C, reprezentând suma celor prime.

Restricții și precizări

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

Exemplu

Intrare

5
11 25 3 4 1

Ieșire

14

Explicație

Dintre cele 5 numere citite sunt prime numerele 11 și 3.

#include <bits/stdc++.h>
using namespace std;

bool prim(int n){
    int d = 2, cnt = 1;
    while(n > 1){
        int p = 0;
        while(!(n % d))
            n/=d, p++;
        cnt *= (p+1);
        d++;
        if(d * d > n)
            d = n;
    }
    return cnt == 2;
}

int main(){
    long long s = 0, n;
    cin >> n;
    int x;
    while(n){
        cin >> x;
        if(prim(x))
            s += x;
        n--;
    }
    cout << s;
    return 0;   
}
Comentarii

S-ar putea sa iti placa