
		andr3ribeiro
		
		(usa Arch Linux)
		
		Enviado em 10/11/2015 - 10:38h 
		Dei uma pesquisada nesse site:
http://lmgtfy.com/?q=numeros+primos+em+C
e encontrei um link que fala isso:
-----------------------------------------------------------------------
 MAC-110 -  Numero Primo  -- Três solucoes para o mesmo problema
=======================================================================
 
/* 
 * arquivo: primo1.c
 * --------------------
 * Este programa verifica se um dado numero inteiro positivo  n 
 * é primo 
 */
#include <stdio.h>
int main()
{
    int n,			/* numero a ser lido e testado */
     d,				/* candidato a divisor */
     EhPrimo;			/* para indicar se o numero dado n 'e primo ou nao     */
	/* Convencao: EhPrimo = 1 se o numero dado 'e primo */
	/*  EhPrimo = 0 se o numero dado nao 'e primo       */
   
    d = 2;
    EhPrimo = 1;		/* Ate' prova em contrario, supomos que n seja  primo */
    printf("Forneca um numero inteiro positivo ===> ");
    scanf("%d", &n);
    printf("Inteiro dado = %d \n", n);
    if (n <= 1)
	EhPrimo = 0;
    while (EhPrimo == 1 && d <= n / 2) {
	if (n % d  == 0)
	    EhPrimo = 0;
	d = d + 1;
    }
    if (EhPrimo == 1)
	printf("%d e' primo \n", n);
    else
	printf(" %d nao e' primo \n", n);
    return 0;
}
 
-------------------------------------------------------------------------
/* 
 * arquivo: primo2.c
 * --------------------
 * Este programa verifica se um dado numero inteiro positivo  n 
 * é primo 
 */
 
#include <stdio.h>
#define TRUE  1                   /* NOVIDADE!!! */
#define FALSE 0                   /* NOVIDADE!!! */
int main()
{
    int n,			/* numero a ser lido e testado */
     d,				/* candidato a divisor */
     EhPrimo,			/* para indicar se o numero dado n 'e primo ou nao     */
	/* Convencao: EhPrimo = 1 se o numero dado 'e primo */
	/*  EhPrimo = 0 se o numero dado nao 'e primo        */
     resto;
    d = 2;
    EhPrimo = TRUE;		/* Ate' prova em contrario, supomos que n seja  primo */
    printf("Forneca um numero inteiro positivo ===> ");
    scanf("%d", &n);
    printf("Inteiro dado = %d \n", n);
    if (n <= 1)
	EhPrimo = FALSE;
    while (EhPrimo == TRUE && d <= n / 2) {
	resto = n % d;
	if (resto == 0)
	    EhPrimo = 0;
	d = d + 1;
    }
    if (EhPrimo == TRUE)
	printf("%d e' primo \n", n);
    else
	printf(" %d nao e' primo \n", n);
    return 0;
}
 
----------------------------------------------------------------
Veja abaixo:  comparacao com TRUE foi simplificada: fica subentendida!
              Apenas os ímpares sao testados: 1, 3, 5...como possiveis
              candidatos a divisor
 
/* 
 * arquivo: primo3.c
 * --------------------
 * Este programa verifica se um dado numero inteiro positivo  n 
 * é primo 
 */
#include <stdio.h>
#define TRUE 1
#define FALSE 0
int main()
{
    int n,			/* numero a ser lido e testado */
     d,				/* candidato a divisor */
     EhPrimo;			/* para indicar se o numero dado n 'e primo ou nao     */
	/* Convencao: EhPrimo = TRUE se o numero dado 'e primo */
	/*  EhPrimo = FALSE se o numero dado nao 'e primo        */
   
    printf("Forneca um numero inteiro positivo ===> ");
    scanf("%d", &n);
    printf("Inteiro dado = %d \n", n);
    if (n <= 1 || (n != 2 && n % 2 == 0))
	EhPrimo = FALSE;	/* nenhum numero inteiro <= 1 ou par > 2 e' primo */
    else
	EhPrimo = TRUE;		/* o numero e' primo ate que se prove o contrario */
    d = 3;
    while (EhPrimo  && d <= n / 2) {
	if (n % d == 0)
	    EhPrimo = 0;
	d = d + 2;		/* testamos so' os  impares: 3, 5, 7... */
    }
    if (EhPrimo)
	printf("%d e' primo \n", n);
    else
	printf(" %d nao e' primo \n", n);
    return 0;
}