En C bool, true y false no existen, cambia bool por short int, false por 0 y true por 1. Tambien puedes definirlas, de forma que el codigo quedaria asi:
/*Acá van los include
include... */
#define false 0
#define true 1
typedef short int bool;
/*Una función para ver si es perfecto*/
bool esPerfecto(int numero){
while(divisor<numero)
{
if(numero%divisor==0)
{
printf("\n%d\n",divisor);
suma=suma+divisor;
}
divisor++;
}
if(numero==suma){return(true);}
else{ return(false);}
}
Saludos
PD: Otro consejo, si vas a usar el bucle for para obtener los numeros perfectos y quieres comprovar grandes cantidades de numeros, declara la variable que contenga los numeros a comprovar (en este caso i) como
register int para acelerar el bucle.