-
-
Save PJCAfonso/6370b67668f74fe259e9c7fad2b91777 to your computer and use it in GitHub Desktop.
Programa para listar todos os números primos até o valor máximo informado pelo usuário
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Programa para listar todos os números primos | |
// até o valor máximo informado pelo usuário | |
// | |
#include <stdio.h> | |
#include <math.h> | |
// Protype da funcao de listagem | |
void lista_array (unsigned int [], unsigned int); | |
int main (void) { | |
unsigned int primos[100]; // Lista de primos | |
unsigned int primo; // Indice da lista | |
unsigned int nao_primo; // Variável de controle | |
unsigned int max; // Número máximo | |
// Coloca dois primos na lista | |
primos[0] = 2; | |
primos[1] = 3; | |
// Número de primos na lista | |
int no_primos = 2; | |
int i; | |
printf("Este programa irá listar todos os numeros primos até o numero informado\n\n"); | |
printf("Digite um número: "); | |
scanf("%i", &max); | |
for (i = 4; i <= max; i++) { | |
primo = 0; | |
nao_primo = 0; | |
while(primo < no_primos && primos[primo] < sqrt(i) && !nao_primo) { | |
if(i % primos[primo] == 0.0) { | |
nao_primo = 1; // O número não é primo, para de testar | |
} | |
primo++; | |
} | |
// O número é primo, adiciona-o à lista e imprime na tela | |
if(!nao_primo) { | |
primos[no_primos] = i; | |
no_primos++; | |
} | |
} | |
printf("Os números primos até %u sao: \n", max); | |
lista_array(primos, no_primos); | |
return 0; | |
} | |
// Imprime os elementos de um array | |
void lista_array (unsigned int arr[], unsigned int no) { | |
int i = 0; | |
while (i < no) { | |
printf("%u\n", arr[i]); | |
i++; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment