Decomposição em fatores primos
Publicado por Enzo de Brito Ferber 28/03/2009
[ Hits: 17.033 ]
Homepage: http://www.maximasonorizacao.com.br
Sim, eu tenho outro script desse aqui no VOL, mas esse está bem melhor (mais compacto e rapido).
Outra coisa, o código está em inglês como sempre, pois este site não é o unico que publico (e o ingles é a linguagem internacional da informática).
Então, happy coding!
// primes.c /* Enzo Ferber : <enzo@veloxmail.com.br> * * Decompose into Prime Factors a given number * * march 27 2009 */ #include <stdio.h> #include <stdlib.h> #include <string.h> #define START 2 // used by the main() function to print the factors int control; /* decom ( num ) * * @ num: number to decompose * * @ Return: return an int* containing all the prime factors */ int *decom ( int num ) { // ... register int i; int *primes = (int *) malloc ( sizeof (int) ); // Houston, we have a problem! if ( !primes ) exit (0); // set control variable control = 1; // START represents the first prime number, 2 for ( i = START; i <= num || num != 1 ; i++ ) { // ensures just an exact division while ( (num % i) == 0) { // I WANT MORE MEMORY, BITCH!!! primes = (int *) realloc ( primes, control * sizeof (int)); // Houston, we have a problem! if ( !primes) exit (0); // put the current prime factor into the list primes[control - 1] = i; control++; // set new number to be divided next num = num / i; } } // return the prime list return primes; } int main ( int argc, char **argv ) { // check for the correct argument if ( argc != 2 ) { // HowTo use a very complex program... printf ( "Usage: %s <number>\n", argv[0] ); return 0; } // begin the program if the arguments are correct register int i; // call the function to decompose into prime factors int *primes = decom ( atoi(argv[1]) ); // print prime list for ( i = 0; i < control - 1; i++ ) printf ( "%3d: %d\n", i + 1, primes[i] ); // free the memory free ( primes ); return 0; }
Calcular dia da semana a partir de uma data sugerida
Teste de desempenho com números primos em C
Atenção a quem posta conteúdo de dicas, scripts e tal (1)
Manutenção de sistemas Linux Debian e derivados com apt-get, apt, aptitude e dpkg
Melhorando o tempo de boot do Fedora e outras distribuições
Como instalar as extensões Dash To Dock e Hide Top Bar no Gnome 45/46
Como Atualizar Fedora 39 para 40
Instalar Google Chrome no Debian e derivados
Consertando o erro do Sushi e Wayland no Opensuse Leap 15
Instalar a última versão do PostgreSQL no Lunix mantendo atualizado
Flathub na sua distribuição Linux e comandos básicos de gerenciamento
iso de sistema 32 bit em atividade (3)
Lançado Ubuntu 24.04 Final (0)
ASRock H310CM-HG4 vs Linux (11)