En este post veremos una función en C++ o CPP que recibe un número y devuelve true
o false
dependiendo de que el número sea o no primo.
Un número primo es aquel que solo es divisible entre 1 y entre sí mismo. Si no sabes lo que significa “divisible” mira este post.
Nota: mira la implementación en ANSI C o en Java.
Función que dice si es número primo en C++
Para empezar, el número 0
, 1
y 4
no son primos. Por lo tanto, si recibimos uno de esos números, indicamos que no, regresando false
.
Después hacemos un ciclo desde 2 hasta la mitad del número, e intentamos dividir e número entre el valor actual del ciclo. Si el número es divisible, regresamos false
, pues significa que el número no es primo porque se pudo dividir entre otro número aparte del 1 y del número en sí.
/*
Número primo en C++ o CPP
https://parzibyte.me/blog
*/
bool esPrimo(int numero) {
// Casos especiales
if (numero == 0 || numero == 1 || numero == 4) return false;
for (int x = 2; x < numero / 2; x++) {
if (numero % x == 0) return false;
}
// Si no se pudo dividir por ninguno de los de arriba, sí es primo
return true;
}
En caso de que no sea divisible y el ciclo termine, regresamos true
porque el número sí es primo.
Esa función puede ser usada en cualquier lugar, como veremos a continuación.
Uso de la función esPrimo en C++
Solo hay que definir el prototipo de la función en el encabezado y después podemos usarla. En este caso simplemente pedimos un número al usuario y le indicamos si el número es primo en C++
/*
Número primo en C++ o CPP
https://parzibyte.me/blog
*/
#include <iostream>
// Definir prototipo de función
bool esPrimo(int numero);
int main() {
int numero;
std::cout << "Escribe un número y te diré si es primo:\n";
std::cin >> numero;
if (esPrimo(numero)) {
std::cout << "Es primo";
} else {
std::cout << "NO es primo";
}
}
bool esPrimo(int numero) {
// Casos especiales
if (numero == 0 || numero == 1 || numero == 4) return false;
for (int x = 2; x < numero / 2; x++) {
if (numero % x == 0) return false;
}
// Si no se pudo dividir por ninguno de los de arriba, sí es primo
return true;
}
Veamos un ejemplo de uso. Voy a compilar con:
g++ primo.cpp -o primo.exe
Luego a ejecutar con:
primo.exe
Finalmente tenemos algunas pruebas:
Te invito a ver más sobre C++ en mi blog.
Escribir una función lógica, DIGITO que determine si un carácter es uno de los dígitos de 0 a 9 syuds en esto