Imprimir si es Primo o no
En este paso final, mejoraremos nuestro programa de comprobación de números primos añadiendo una salida más detallada y permitiendo la comprobación de varios números.
Modifiquemos el programa para proporcionar una salida más completa:
nano ~/project/prime_checker.c
Actualiza el código con una interfaz mejorada:
#include <stdio.h>
#include <math.h>
int is_prime(int number) {
// Los números menores que 2 no son primos
if (number < 2) {
return 0;
}
// Comprobar la divisibilidad de 2 hasta la raíz cuadrada del número
for (int i = 2; i <= sqrt(number); i++) {
if (number % i == 0) {
return 0; // No es primo si es divisible
}
}
return 1; // Primo si no se encuentran divisores
}
void print_prime_details(int number) {
if (is_prime(number)) {
printf("%d es un número PRIMO!\n", number);
printf("Explicación:\n");
printf("- Sólo es divisible por 1 y por sí mismo\n");
printf("- No se encontraron otros divisores entre 2 y √%d\n", number);
} else {
printf("%d no es un número primo.\n", number);
// Encontrar e imprimir el divisor más pequeño
for (int i = 2; i <= sqrt(number); i++) {
if (number % i == 0) {
printf("Explicación:\n");
printf("- Divisible por %d\n", i);
printf("- %d × %d = %d\n", i, number / i, number);
break;
}
}
}
}
int main() {
int number, continue_check;
do {
printf("Ingrese un entero positivo para comprobar si es primo: ");
scanf("%d", &number);
print_prime_details(number);
printf("\n¿Desea comprobar otro número? (1=Sí, 0=No): ");
scanf("%d", &continue_check);
} while (continue_check == 1);
printf("Gracias por usar el Comprobador de Números Primos!\n");
return 0;
}
Compila el programa:
gcc ~/project/prime_checker.c -o ~/project/prime_checker -lm
Ejemplos de salida:
Ingrese un entero positivo para comprobar si es primo: 17
17 es un número PRIMO!
Explicación:
- Sólo es divisible por 1 y por sí mismo
- No se encontraron otros divisores entre 2 y √17
¿Desea comprobar otro número? (1=Sí, 0=No): 1
Ingrese un entero positivo para comprobar si es primo: 20
20 no es un número primo.
Explicación:
- Divisible por 2
- 2 × 10 = 20
¿Desea comprobar otro número? (1=Sí, 0=No): 0
Gracias por usar el Comprobador de Números Primos!
Mejoras clave:
- Se añadieron explicaciones detalladas para números primos y no primos.
- Se implementó un bucle para permitir comprobaciones de varios números.
- Proporciona una salida más educativa sobre las propiedades de los números.