-----------------------------------------------------------------
MAC-115 - Turma T23 - 29/agosto -- PRIMOS
=================================================================
/*
* arquivo: primo1.c
* -------------------
* Dado um inteiro n > 0, este programa verifica se
* n é primo. Dizemos que n é primo se n tem exatamente dois
* divisores distintos: o 1 e ele mesmo.
* O 1 não é primo. O 2 é primo.
*/
#include <stdio.h>
int main()
{
int n, /* inteiro a ser testado se é primo */
d, /* candidato a divisor de n */
contador; /* conta o total de divisores */
printf("Digite o valor de n: ");
scanf("%d", &n);
contador = 0;
d = 1;
while (d <= n) {
if (n % d == 0)
contador = contador + 1;
d = d + 1;
}
if (contador == 2)
printf("%d é primo.\n", n);
else
printf("%d não é primo.\n", n);
return 0;
}
-----------------------------------------------------------
/*
* arquivo: primo2.c
* -------------------
* Dado um inteiro n > 0, este programa verifica se
* n é primo. Dizemos que n é primo se n tem exatamente dois
* divisores distintos: o 1 e ele mesmo.
* O 1 não é primo. O 2 é primo.
*/
#include <stdio.h>
int main()
{
int n, /* inteiro a ser testado se é primo */
d, /* candidato a divisor de n */
IsPrime; /* IsPrime = 1 se n é primo */
/* IsPrime = 0 se n não é primo */
printf("Digite o valor de n: ");
scanf("%d", &n);
IsPrime = 1; /* consideramos n primo, ate' prova em contrario */
if (n <=1)
IsPrime = 0;
d = 2;
while (d <= n/2) {
if (n % d == 0)
IsPrime = 0; /* encontramos um divisor, portanto n nao é primo */
d = d + 1;
}
if (IsPrime == 1) /* Veja OBS abaixo */
printf("%d é primo.\n", n);
else
printf("%d não é primo.\n", n);
return 0;
}
/* OBS: Aqui poderia ser: "if (IsPrime)" --- Troque esta parte, e
* chame o novo programa de primo3.c para fazer o teste.
*/
----------------------------------------------------------------
/*
* arquivo: primo4.c
* -------------------
* Dado um inteiro n > 0, este programa verifica se
* n é primo. Dizemos que n é primo se n tem exatamente dois
* divisores distintos: o 1 e ele mesmo.
* O 1 não é primo. O 2 é primo.
*/
#include <stdio.h>
#define TRUE 1
#define FALSE 0
int main()
{
int n, /* inteiro a ser testado se é primo */
d, /* candidato a divisor de n */
IsPrime; /* IsPrime = TRUE se n é primo */
/* IsPrime = FALSE se n não é primo */
printf("Digite o valor de n: ");
scanf("%d", &n);
IsPrime = 1; /* consideramos n primo, ate' prova em contrario */
if (n <= 1)
IsPrime = FALSE;
d = 2;
while (d <= n / 2) {
if (n % d == 0)
IsPrime = FALSE; /* encontramos um divisor, portanto n nao é primo */
d = d + 1;
}
if (IsPrime == TRUE)
printf("%d é primo.\n", n);
else
printf("%d não é primo.\n", n);
return 0;
}
------------------------------------------------------
/*
* arquivo: primo4.c
* -------------------
* Dado um inteiro n > 0, este programa verifica se
* n é primo. Dizemos que n é primo se n tem exatamente dois
* divisores distintos: o 1 e ele mesmo.
* O 1 não é primo. O 2 é primo.
*/
#include <stdio.h>
#define TRUE 1
#define FALSE 0
int main()
{
int n, /* inteiro a ser testado se é primo */
d, /* candidato a divisor de n */
IsPrime; /* IsPrime = TRUE se n é primo */
/* IsPrime = FALSE se n não é primo */
printf("Digite o valor de n: ");
scanf("%d", &n);
IsPrime = 1; /* consideramos n primo, ate' prova em contrario */
if (n <= 1)
IsPrime = FALSE;
d = 2;
while (d <= n / 2 && IsPrime == TRUE) {
if (n % d == 0)
IsPrime = FALSE; /* encontramos um divisor, portanto n nao é primo */
d = d + 1;
}
if (IsPrime == TRUE)
printf("%d é primo.\n", n);
else
printf("%d não é primo.\n", n);
return 0;
}
/* OBS: a condicao composta
* d <= n / 2 && IsPrime == TRUE ou equivalentemente,
* (d <= n / 2) && (IsPrime == TRUE)
* é verdadeira se e só se ambas as condicoes d <= n / 2 e IsPrime == TRUE
* sao verdadeiras. Ou seja, se uma delas, ou ambas forem falsas, a condicao
* composta e' falsa.
*/