//Si no se incluye <stdbool.h>, no podra usar los datos bool
#include <stdbool.h>
#include <stdio.h>
//este metodo solo retorna true o false, a este metodo llega como argumento el numero a probar
bool es_primo(int num){
//si se trata del 1 al 3 es primo
if(num==1 || num==2 || num==3) return true;
//sino, verificamos que el numero sea distinto de cero, y mayor que cero
if(num && num>0)
{
if(num/2==0) return false;
int i;
//recorremos del 3 hasta un numero antes del numero a probar
for(i=3;i<num;i++){
/*
Si el residuo de num / i == 0
entonces el numero es divisible por otro numero, lo cual rompe
la regla de los numeros primos.
Retornamos false inmediatamente
*/
if(num%i==0) return false;
//con esto nos sercioramos que no se vuelva a dividir entre pares,
//porque ya lo hicimos antes, asi que ahora las divisiones seran de numero impares
//ejemplo_ entre 3,5,7,9, etc
i++;
}
//si en el recorrido no retorno false, es numero primo
return true;
}
//si num=0 o num<0 el numero tampoco es primo
else return false;
}
int main(){
printf("Ingrese la cantidad de numeros que desea probar: ");
int cant;
scanf("%i",&cant);
int i;
for(i=1;i<=cant;i++) {
printf("Ingrese numero: ");
int num;
scanf("%i",&num);
//mandamos como parametro numero ingresado
//si returna true, es primo, sino no lo es
if(es_primo(num)) printf("El numero es primo\n");
else printf("El numero no es primo\n");
}
printf("\n");
system("pause");
return 0;
}
Encuentranos en Facebook como Freek Frees
No hay comentarios:
Publicar un comentario