Pular para o conteúdo

Saber se um número é primo (algoritmo super simples)

Algoritmo para saber um número (lido pelo programa) é primo ou não...
Francisco Leandro Xavier Carneiro leandrox
Hits: 241.372 Categoria: C/C++ Subcategoria: Introdução
  • Download
  • Nova versão
  • Indicar
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Descrição

Algoritmo para saber um número (lido pelo programa) é primo ou não...
Download 4595.primo.c Enviar nova versão
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Esconder código-fonte

#include <stdio.h>
#include <stdlib.h>

int main() {
  
  int i, x; 
  int div = 0;
  
  do {
    system("clear");
    printf("Digite um número inteiro e positivo: ");
    scanf("%d", &x);
  } while (x <= 0);
  
  for (i = 1; i <= x; i++) {
    if (x % i == 0) { 
     div++;
    }
  }
    
  if (div == 2)
    printf("O número %d é primo!", x);
  else
    printf("O número %d não é primo!", x);

  return 0;
}
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Labirinto de Teseu

light_konsole - konsole de ultima hora

Beethoven

Fibonacci Recursivo e Não Recursivo

Números primos.

#1 Comentário enviado por Gigatesla boy em 24/05/2010 - 19:21h
Belo algoritimo :)

Para implementá-lo ele poderia dividir apenas por numeros primos, ao inves de todos menos que ele. Afinal, todo numero que é composto é produto de um primo
#2 Comentário enviado por oberlan em 24/05/2010 - 19:48h
Uma forma de deixar o algorítmo mais eficiente é usar a seguinte função:

bool isPrimo(int n){

if(n<5 || n%2==0 || n%3==0)
return (n==2||n==3);

int maxP = sqrt(n)+2;
for(int p=5; p<maxP; p+=6)
if(n%p==0||n%(p+2)==0)
return false;

return true;
}
#3 Comentário enviado por edgardiniz em 25/05/2010 - 18:41h
Já ouviram falar no Crivo de Eratóstenes?

Contribuir com comentário

Entre na sua conta para comentar.