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

Subprogramul suma are un singur parametru, n, prin care primește un număr natural (n∈[1,10⁶]).

Subprogramul returnează suma divizorilor pozitivi ai lui n care nu sunt primi.

Scrieți definiția completă a subprogramului.

Exemplu: pentru n=12 subprogramul returnează 23 (23=1+4+6+12).

Răspunsuri la întrebare

Răspuns de boiustef
12

Răspuns:

#include <iostream>

using namespace std;

int SDNuP(int n)

{

   int s=1;

   for (int d=4; d<=n ; d++) {

       if (n%d==0) {

           int p=1;

           for (int i=4; i<=d && p==1; i++) {

               if (d%i==0) p=0;

           }

           if (p==0) s+=d;

       }

   }

   return s;

}

int main()

{

   int num;

   cin >> num;

   cout << SDNuP(num);

   return 0;

}

Explicație:

Alte întrebări interesante