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

Publicado por Francisco Leandro Xavier Carneiro (última atualização em 24/05/2010)

[ Hits: 240.776 ]

Homepage: http://conexaotech.blogspot.com/

Download 4595.primo.c




Algoritmo para saber um número (lido pelo programa) é primo ou não...

  



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;
}

Scripts recomendados

Bubble sort em vetores

[C] Fibonacci

Inverte frase

Comando goto

SOFTCALC


  

Comentários
[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




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts