Hola, os pongo el enunciado del ejercicio.
Calcular i imprimir los numeros perfectos que sean mas pequeños que un numero introducido por teclado. (Un numero es perfecto si la suma de sus divisores (excepto el mismo) es igual al mismo numero.
#include <stdio.h>
void main(void) {
int n=0;
int i;
int suma;
while ( n<=0 ) {
system("clear");
printf ("Introduce el numero.nNumero: ");
fflush (stdin);
scanf("%d",&n);
}
while ( n > 0 ) {
suma = 0;
i = 0;
while ( i <= n ) {
if ( i == n ) {
if ( suma == n ) {
printf ("%d es un numero perfecto.",n);
}
} else if ( (n%i) == 0 ) {
suma=suma+i;
}
i++;
}
n--;
}
}
La cosa es que me da un "Excepcion de coma flotante" y no se el motivo. Si podeis explicarme un poco os lo agradeceria.