Imprimir el Resultado
En este paso final, mejorarás el programa para proporcionar una salida más detallada sobre el número perfecto, incluyendo sus divisores y la suma.
Abre el archivo y actualiza el código:
nano ~/project/perfect_number.c
Reemplaza el código anterior con:
#include <stdio.h>
int main() {
int number, sum = 0;
// Solicitar al usuario que introduzca un entero positivo para comprobar si es un número perfecto:
printf("Introduce un entero positivo para comprobar si es un número perfecto: ");
scanf("%d", &number);
// Imprimir encabezado para los divisores
printf("Divisores propios de %d: ", number);
// Calcular la suma de los divisores propios e imprimirlos
for (int i = 1; i < number; i++) {
if (number % i == 0) {
printf("%d ", i);
sum += i;
}
}
// Imprimir el resultado detallado
printf("\n\nSuma de los divisores propios: %d", sum);
// Comprobar e imprimir el estado del número perfecto
if (sum == number) {
printf("\n%d es un NÚMERO PERFECTO!\n", number);
} else {
printf("\n%d no es un número perfecto.\n", number);
}
return 0;
}
Compila y ejecuta el programa:
gcc perfect_number.c -o perfect_number
./perfect_number
Ejemplo de salida para un número perfecto (28):
Introduce un entero positivo para comprobar si es un número perfecto: 28
Divisores propios de 28: 1 2 4 7 14
Suma de los divisores propios: 28
28 es un NÚMERO PERFECTO!
Ejemplo de salida para un número no perfecto (12):
Introduce un entero positivo para comprobar si es un número perfecto: 12
Divisores propios de 12: 1 2 3 4 6
Suma de los divisores propios: 16
12 no es un número perfecto.
Mejoras clave:
- Ahora imprime todos los divisores propios.
- Muestra la suma de los divisores propios.
- Proporciona una salida clara y formateada.
- Mantiene la lógica central de la detección de números perfectos.