Como dice el tema quiero hacer un programa en C++ que calcule la suma de los divisores de un número.
Tengo el siguiente código:
Código:
#include <iostream>
using namespace std;
int main()
{
//Declaración variables
int n; //Entrada
int s; // Salida
int i; //Auxiliar
cout << "INTRODUZCA UN NUMERO:" << endl;
cin >> n;
s=1; // 1 es divisor siempre
for (i=2;i<=(n/2);i++) {
if (n%i==0) {
s=s+i;
}
}
s=s+n; //Sumamos el numero inicial que es divisor de él mismo
cout << "LA SUMA DE LOS DIVISORES DE " << n << " ES: " << s << endl;
return 0;
}
El problema que tengo es que por números como el 6, 20 y otros funciona.
Pero por ejemplo por el 220 no.
1 + 2 + 4 + 5 + 10 + 11 + 20 + 22 + 44 + 55 + 110 = 284
En mi programa la suma de divisores de 220 sale que es 504.
Alguien tiene idea de que puede fallar y cómo solucionarlo?
Gracias