Linguagem C - Verificando se um inteiro é um número primo

Um programa na linguagem C pode ser usado para verificar se um inteiro é um número primo . Algum conhecimento de conceitos de programação e linguagens como C é requerido para escrever um código de programa em C. Conceitos básicos como looping, incluindo loops, while loops, se mais loops, funções, etc, são necessários para escrever programas. Um programa para verificar se um inteiro é um número primo em C pode ser escrito usando loops for aninhados . Os loops aninhados contêm um para o loop dentro de outro. Algum conhecimento das funções C, como scanf e printf, também será útil na programação em C.

[Linguagem C] Verificando se um inteiro é um número primo

  • Definição de um número primo
    • Algoritmo 1: divisores entre 2 e N-1 serão testados
    • Algoritmo 2: Mesmo divisores não serão testados, a pesquisa é limitada a divisores ímpares
    • Algoritmo 3: Todos os divisores ímpares até a raiz quadrada de N serão testados
    • Algoritmo 4: parar o programa quando um divisor é encontrado

Definição de um número primo

Um número primo é um inteiro, dividido apenas por 1 e por ele mesmo.

Algoritmo 1: divisores entre 2 e N-1 serão testados

/ **************************

  • prime_number1.c * / / * algorithm: testa todos os divisores * / #include int main (vazio) {int i, nb, contagem, teste; teste = contagem = 0; printf ("insira inteiro:"); if (scanf ("% d", & nb)! = 1) retorna -1; para (i = 2; i <nb; i ++, contagem ++) if (nb% i == 0) teste = 1; if (! teste) printf ("% d número primo, número de iterações =% dn", nb, contagem); else printf ("% d não é um número primo, número de iterações =% dn", nb, count); return 0; }

Algoritmo 2: Mesmo divisores não serão testados, a pesquisa é limitada a divisores ímpares

/ **************************

  • prime_number2.c * / / * algoritmo: exclui números pares e * testa todos os divisores * / #include int main (void) {int i, nb, contagem, teste; teste = contagem = 0; printf ("insira inteiro:"); if (scanf ("% d", & nb)! = 1) retorna -1; if (nb% 2 == 0) teste = 1; else {para (i = 3; i <nb; i + = 2, contagem ++) if (nb% i == 0) teste = 1; } if (! teste) printf ("% d número primo, número de iterações =% dn", nb, contagem); else printf ("% d não é um número primo, número de iterações =% dn", nb, count); return 0; }

Algoritmo 3: Todos os divisores ímpares até a raiz quadrada de N serão testados

/ **************************

  • prime_number3.c * / / * algorithm: exclui todos os números pares e * testa todos os divisores até a raiz quadrada * / #include #include int main (void) {int i, nb, contagem, teste, limite; teste = contagem = 0; printf ("insira inteiro:"); if (scanf ("% d", & nb)! = 1) retorna -1; limite = sqrt (nb) + 1; if (nb% 2 == 0) teste = 1; else {para (i = 3; i <limite; i + = 2, contagem ++) if (nb% i == 0) teste = 1; } if (! teste) printf ("% d número primo, número de iterações =% dn", nb, contagem); else printf ("% d não é um número primo, número de iterações =% dn", nb, count); return 0; }

Algoritmo 4: parar o programa quando um divisor é encontrado

/ **************************

  • prime_number4.c * / / * algorithm: exclui todos os números pares e * testa todos os divisores até a raiz quadrada * loop de saída quando o primeiro divisor é encontrado * / #include #include int main (void) {int i, nb, count, teste, limite; teste = contagem = 0; printf ("Enter integer:"); if (scanf ("% d", & nb)! = 1) retorna -1; limite = sqrt (nb) + 1; if (nb% 2 == 0) teste = 1; else {para (i = 3; i <limite &&! teste; i + = 2, contagem ++) if (nb% i == 0) teste = 1; } if (! teste) printf ("% d número primo, número de iterações =% dn", nb, contagem); else printf ("% d não número primo, número de iterações =% dn", nb, contagem); return 0; }
Artigo Anterior Próximo Artigo

Principais Dicas