antonio-abrantes
7/21/2016 - 9:43 AM

Soma Divisores com Raiz quadrada

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;
}