Soma Divisores com Raiz quadrada
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
int n, i, temp, quad;
while(scanf("%d",&n) != EOF){
if(n == 0)
break;
int soma = 0;
quad = (int)sqrt(n);
//Realizar o calculo até a raiz quadrada do numero, reduzindo o tempo de execução...
for(i = 1;i <= quad; i++){ //Calcular a soma dos divisores sem incluir o numero de entrada...
if(n % i == 0){
temp = n / i ;
if(temp == quad){
soma = soma + n/i;
break;
}
soma = soma + temp + i;
}
}
printf("A soma e: %d \n",(soma - n)); // soma - n => para não incluir o numero de entrada a soma
//system("PAUSE");
}
return 0;
}