Informatică, întrebare adresată de bocatudor43, 9 ani în urmă

Cerinţa
Se dau n numere naturale. Calculaţi suma obținută prin adunarea primului divizor prim al fiecărui număr citit.

Date de intrare
Programul citește de la tastatură numărul n, iar apoi n numere naturale, separate prin spaţii.

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

Restricţii şi precizări
1 ≤ n ≤ 1000
cele n numere citite vor fi mai mari decât 1 și mai mici decât 1.000.000.000

Exemplu
Intrare

5
15 13 39 49 25
Ieșire

31

Răspunsuri la întrebare

Răspuns de ardyarde
7
#include <iostream>
using namespace std;
int prim(int n)
{
    int i,k=0;
    for(i=1;i<=n;i++)
    if(n%i==0)
        k++;
    if(k==2)
        return 1;
    else
        return 0;
}

int main()
{
    int n, pp, x,i,j,S=0;
    cin>>n;
    for(i=0;i<n;i++)
    {
        cin>>x;
        for(j=2;j<=x;j++)
        {
           if(x%j==0 && prim(j))
           {
           S+=j;
           break;
           }
        }
    }
    cout<<S;
}
Alte întrebări interesante