Imprimir factores primos
En este paso, mejorará el programa de descomposición en factores primos para proporcionar una salida más detallada y formateada de los factores primos. Modificaremos el archivo prime_factorization.c
existente para mejorar la presentación de los resultados.
Abre el archivo:
cd ~/project
nano prime_factorization.c
Actualiza el código con una función de descomposición mejorada:
#include <stdio.h>
void factorize(int number) {
int original_number = number;
int factor_count = 0;
printf("Prime Factorization of %d:\n", original_number);
printf("---------------------\n");
// Start with the smallest prime number
for (int divisor = 2; divisor <= number; divisor++) {
int current_factor_count = 0;
while (number % divisor == 0) {
number /= divisor;
current_factor_count++;
factor_count++;
}
// Print factors with their exponents
if (current_factor_count > 0) {
printf("%d^%d ", divisor, current_factor_count);
}
}
printf("\n\nTotal number of prime factors: %d\n", factor_count);
}
int main() {
int number;
printf("Enter a positive integer to factorize: ");
scanf("%d", &number);
// Check for valid input
if (number <= 1) {
printf("Please enter a number greater than 1.\n");
return 1;
}
factorize(number);
return 0;
}
Mejoras clave en esta versión:
- Se agregó formato para mostrar los factores primos
- Muestra el exponente de cada factor primo
- Cuenta el número total de factores primos
- Conserva el número de entrada original para su visualización
Compila y ejecuta el programa:
gcc prime_factorization.c -o prime_factorization
./prime_factorization
Ejemplos de salida:
Enter a positive integer to factorize: 24
Prime Factorization of 24:
---------------------
2^3 3^1
Total number of prime factors: 4
Enter a positive integer to factorize: 100
Prime Factorization of 100:
---------------------
2^2 5^2
Total number of prime factors: 4