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.
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.
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.
Hoy te voy a presentar un creador de credenciales que acabo de programar y que…
Ya te enseñé cómo convertir una aplicación web de Vue 3 en una PWA. Al…
En este artículo voy a documentar la arquitectura que yo utilizo al trabajar con WebAssembly…
En un artículo anterior te enseñé a crear un PWA. Al final, cualquier aplicación que…
Al usar Comlink para trabajar con los workers usando JavaScript me han aparecido algunos errores…
En este artículo te voy a enseñar cómo usar un "top level await" esperando a…
Esta web usa cookies.
Ver comentarios
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