#include <iostream> using namespace std; int main() { int nr, suma=0; cin>>nr; int d; for(d=2;d*d<nr;d++) if(nr%d==0) suma=suma+d+nr/d; //perechea a caror membrii inmultiti dau nr if(d*d==nr) //in caz ca este patrat perfect adunam doar o data suma=suma+d; cout<<suma; }
- citim numarul
- cu ajutorul variabilei d vom parcurge divizorii de la 2 pana la < sqrt(nr) (strict mai mic in caz ca avem patrat perfect)
- in variabila suma vom aduna cate o pereche d si n/d
- in caz ca avem patrat perfect (d*d=n) vom aduna doar o data d, deoarece d si n/d reprezinta acelasi divizor