Informatică, întrebare adresată de asadeseara, 8 ani în urmă

Exercitiul din poza, în c++, mersi anticipat.​

Anexe:

Răspunsuri la întrebare

Răspuns de reversalrege1
0

Răspuns:

int suma(int n)

{

int sum = 0;

int i = 2;

while (n != 1)

{

 int exp = 0;

 while (n % i == 0)

 {

  exp++;

  n /= i;

 }

 

 if (exp)  

  sum += i;

  i++;

 if (i * i > n)

  i = n;

}

return sum;

}

Explicație:

Răspuns de sanzianagrecu
0

int suma(int n){

   int d = 2, sum = 0;

   while(n > 1){

       int p = 0;

       while(n % d == 0)

           p++, n /= d;

       if(p)

           sum += d;

       d++;

       if(d * d > n)

           d = n;

   }

   return sum;

}

Daca ai nelamuriri, ma poti intreba in comentarii!


asadeseara: hey pot sa ți trimit codul pe care l am fct înainte sa mi spui ce e greșit și dacă as putea îmbunătății cv?
sanzianagrecu: Sigur
Alte întrebări interesante