Imprimir Fatores Primos
Neste passo, você aprimorará o programa de fatoração de primos para fornecer uma saída mais detalhada e formatada dos fatores primos. Modificaremos o arquivo prime_factorization.c existente para melhorar a apresentação dos resultados.
Abra o arquivo:
cd ~/project
nano prime_factorization.c
Atualize o código com uma função de fatoração aprimorada:
#include <stdio.h>
void factorize(int number) {
int original_number = number;
int factor_count = 0;
printf("Fatoração de Primos de %d:\n", original_number);
printf("---------------------\n");
// Começando com o menor número primo
for (int divisor = 2; divisor <= number; divisor++) {
int current_factor_count = 0;
while (number % divisor == 0) {
number /= divisor;
current_factor_count++;
factor_count++;
}
// Imprime fatores com seus expoentes
if (current_factor_count > 0) {
printf("%d^%d ", divisor, current_factor_count);
}
}
printf("\n\nNúmero total de fatores primos: %d\n", factor_count);
}
int main() {
int number;
printf("Digite um inteiro positivo para fatorar: ");
scanf("%d", &number);
// Verificação de entrada válida
if (number <= 1) {
printf("Por favor, digite um número maior que 1.\n");
return 1;
}
factorize(number);
return 0;
}
Melhorias-chave nesta versão:
- Adição de formatação para exibir fatores primos
- Mostra o expoente de cada fator primo
- Conta o número total de fatores primos
- Preserva o número de entrada original para exibição
Compile e execute o programa:
gcc prime_factorization.c -o prime_factorization
./prime_factorization
Exemplos de saídas:
Digite um inteiro positivo para fatorar: 24
Fatoração de Primos de 24:
---------------------
2^3 3^1
Número total de fatores primos: 4
Digite um inteiro positivo para fatorar: 100
Fatoração de Primos de 100:
---------------------
2^2 5^2
Número total de fatores primos: 4