Scrie algoritmul care calculeaza suma divizorilor numarului intreg x dat.
Răspunsuri la întrebare
Răspuns de
0
#include <iostream>
using namespace std;
int main()
{
int numarul, sumaDivizorilor=0;
cout<<"Numarul="; cin>>numarul;
if (numarul>=0)
{
for (int divizor=1; divizor<=numarul; divizor++)
if (numarul%divizor==0)
sumaDivizorilor += divizor;
}
else
{
for (int divizor=-1; divizor>=numarul; divizor--)
if (numarul%divizor==0)
sumaDivizori += divizor;
}
cout<<"Suma divizorilor este "<<sumaDivizorilor;
return 0;
}
using namespace std;
int main()
{
int numarul, sumaDivizorilor=0;
cout<<"Numarul="; cin>>numarul;
if (numarul>=0)
{
for (int divizor=1; divizor<=numarul; divizor++)
if (numarul%divizor==0)
sumaDivizorilor += divizor;
}
else
{
for (int divizor=-1; divizor>=numarul; divizor--)
if (numarul%divizor==0)
sumaDivizori += divizor;
}
cout<<"Suma divizorilor este "<<sumaDivizorilor;
return 0;
}
Răspuns de
1
Iti ofer un algoritm in C++ mai eficient.Succes!
#include <iostream>
using namespace std;
int n , d;
long long s = 0;
int main()
{
cin >> n;
for(d=1 ; d*d<n ; d++)
if(n % d == 0)
s = s + d + n / d;
if(d * d == n)
s = s + d;
cout << s;
return 0;
}
#include <iostream>
using namespace std;
int n , d;
long long s = 0;
int main()
{
cin >> n;
for(d=1 ; d*d<n ; d++)
if(n % d == 0)
s = s + d + n / d;
if(d * d == n)
s = s + d;
cout << s;
return 0;
}
Alte întrebări interesante
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Alte limbi străine,
9 ani în urmă
Limba română,
9 ani în urmă