👤

376 pbinfo, doar 90 de puncte, de ce? Raspunsul care imi explica primeste coroana.

Cerinţa
Se citește un număr natural n. Să se determine suma divizorilor săi.

Date de intrare
Programul citește de la tastatură numărul n.

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

Restricţii şi precizări
0 < n ≤ 1.000.000.000

#include
#include
#include
using namespace std;

int main()
{
long n,d,s=0;
cin>>n;
if(n==0)
{
cout<<1;
return 0;
}
for(d=1;d<=sqrt(n);d++)
if(n%d==0)
{s+=d;
if(n/d>d)
s+=n/d;}
cout< }


Răspuns :

#include <iostream>

#include<cmath>

using namespace std;

int n,i;

long long s;

int main()

{

   cin>>n;

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

   if(n%i==0)

   { s+=i;

   if(n/i>i)

   s+=n/i;

   }

   cout<<s;

   return 0;

}