Exibi os números primos de um numero recebido pelo usuário, sem estrutura de repetição
Publicado por Edmar Wantuil (última atualização em 22/11/2011)
[ Hits: 2.211 ]
Homepage: wantuil.com
Escrevi esse código para testar os números primos <= de um numero recebido pelo usuário.
Economizado o máximo de processos possíveis e sem utilizar estrutura de repetição apenas recursividade.
/*
Feito por Edmar Wantuil Silva Júnior
Em 14 de novembro de 2011
*/
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
//Função testa se é primo ele testa até encrontar um divisor o achando ele para o teste, pois já saberemos que ele é primo
int testa_primo(int numero, int divisor)
{
//Ira testar somente até a metade do numero pois sabemos que após a metade do nuemro so existe o proprio numero como divisor
if((numero / 2) < divisor)
return 0;
//Se achar qualquer divisor o teste irá parar pois o numero não é mais primo
if(numero % divisor == 0)
return 1;
else
return testa_primo(numero,divisor + 1);
}
//Essa função chama a função testa primo e retorna true caso primo
bool primo(numero)
{
//vamos passar o numero 2 como o primeiro divisor pois sabemos que todos os numeros são divisiveis assim se retornar 0 ele sera primo
if(testa_primo(numero,2) == 0)
return true;
else
return false;
}
//Essa função chama ela mesma até numero = cont
void primos(int numero, int cont)
{
if(primo(cont) == true)
printf("%d\n", cont);
if(numero > cont)
primos(numero, cont + 1);
return;
}
//Função principal
int main()
{
int numero= 0;
printf("Numero: ");
scanf("%d",&numero);
primos(numero, 1);
primo(numero);
return 0;
}
Produto de duas matrizes alocadas dinamicamente
Nenhum comentário foi encontrado.
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
Jogar games da Battle.net no Linux com Faugus Launcher
Como fazer a Instalação de aplicativos para acesso remoto ao Linux
Como fazer a instalação do Samba
Como fazer a conversão binária e aplicar as restrições no Linux
Duas Pasta Pessoal Aparecendo no Ubuntu 24.04.3 LTS (40)
Pfsense inacessivel após um periodo de tempo (2)









