👤

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
Explicație
Pentru numerele date, primul divizor prim este, respectiv: 3 13 3 7 5, cu suma 31.

link:https://www.pbinfo.ro/?pagina=probleme&id=443


Răspuns :

Răspuns:

#include <iostream>

using namespace std;

int factor(int num)

{

   int r=num;

   for (int d = 3; d*d <= num; d += 2)

       if (num%d == 0)

           {

              r=d; break;

           }

   return r;

}

int main()

{

   int n, i;

   long long s=0, num;

   cin >> n;

   for (i=1; i<=n; i++)

   {

       cin >> num;

       if (num%2==0) s+=2;

       else

       {

           s=s+factor(num);

       }

   }

   cout << s;

   return 0;

}

Explicație:

Vă mulțumim pentru vizita pe site-ul nostru dedicat Informatică. Sperăm că informațiile prezentate v-au fost utile. Dacă aveți întrebări suplimentare sau nevoie de ajutor, vă rugăm să ne contactați cu încredere. Așteptăm cu drag să reveniți și nu uitați să ne salvați în lista dumneavoastră de favorite!


En Studentsy: Alte intrebari