#include <stdio.h>

int main(int argc, const char *argv[])
{

  int first_interval;
  int last_interval;
  int number;
  int divider;
  int sum = 0;
  
  // Define um vetor para armazer os divisores:
  int dividers[10] = {0};

  // Variável de controle para os divisores:
  int i = 0;

  printf("Enter first and last interval`s number\n");
  scanf("%d %d", &first_interval, &last_interval);

  for (number = first_interval; number >= first_interval && number <= last_interval; number++ )
  { 
    for (divider = 1; divider < number; divider++)
    {
      if (number % divider == 0)
      {
        sum = sum + divider;

        // Encontrou um divisor, então armazena-o:
        dividers[i++] = divider;
      }
    }

    if (sum == number)
    {
      // Número é perfeito, então exibe os divisores:
      for (int j = 0; j < i-1; j++) printf("%d + ", dividers[j]);
      printf("%d = ", dividers[i-1]);

      printf("%d PERFECT !!!\n", number);
    }

    // Reinicia a variável de controle:
    i = 0;
    sum = 0;
  }

  return 0;
}