Identificación de números primos en C++

C++C++Beginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, aprenderemos cómo comprobar si un número dado es primo o compuesto en C++. Un número primo es un número mayor que 1 que no puede dividirse por ningún número diferente de 1 y sí mismo. Un número compuesto es un número mayor que 1 que puede dividirse por números diferentes de 1 y sí mismo.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL cpp(("C++")) -.-> cpp/BasicsGroup(["Basics"]) cpp(("C++")) -.-> cpp/ControlFlowGroup(["Control Flow"]) cpp(("C++")) -.-> cpp/IOandFileHandlingGroup(["I/O and File Handling"]) cpp/BasicsGroup -.-> cpp/booleans("Booleans") cpp/ControlFlowGroup -.-> cpp/conditions("Conditions") cpp/ControlFlowGroup -.-> cpp/for_loop("For Loop") cpp/IOandFileHandlingGroup -.-> cpp/output("Output") cpp/IOandFileHandlingGroup -.-> cpp/user_input("User Input") subgraph Lab Skills cpp/booleans -.-> lab-96129{{"Identificación de números primos en C++"}} cpp/conditions -.-> lab-96129{{"Identificación de números primos en C++"}} cpp/for_loop -.-> lab-96129{{"Identificación de números primos en C++"}} cpp/output -.-> lab-96129{{"Identificación de números primos en C++"}} cpp/user_input -.-> lab-96129{{"Identificación de números primos en C++"}} end

Definir la función isPrime()

Definiremos una función isPrime(), que toma un entero y devuelve un valor booleano que representa si el entero es primo o no.

#include <iostream>
#include <math.h>

using namespace std;

bool isPrime(int n)
{
    if (n == 1)
        return false; // 1 no es un número primo

    for (int i = 2; i <= sqrt(n); i++)
    {
        if (n % i == 0)
            return false;
    }

    return true;
}

En el código anterior, estamos comprobando si el número dado es divisible por cualquier número. Si no hay tales números, el número es primo. Si el número es 1, no es primo.

Escribir la función main()

Ahora escribiremos la función main() que toma la entrada del usuario y utiliza la función isPrime() para determinar si el número dado es primo o compuesto.

int main()
{
    cout << "\n\nWelcome to LabEx :-)\n\n\n";
    cout << " ===== Most Efficient Program to determine if the entered number is Prime or not. ===== \n\n";

    cout << " ===== Note: 1 is neither Prime nor Composite. ===== \n\n";

    int n;
    bool prime = false;

    cout << " Enter a positive integer other than 1 :  ";
    cin >> n;

    prime = isPrime(n);

    if (prime)
    {
        cout << "\n\nThe entered number " << n << " is a Prime number.";
    }
    else
    {
        cout << "\n\nThe entered number " << n << " is Composite number.";
    }

    cout << "\n\n\n";

    return 0;
}

Compilar y ejecutar el programa

Compila el código usando el comando g++ de la siguiente manera:

g++ main.cpp -o main

Luego ejecuta el programa usando el comando ./main.

./main

El programa te pedirá que ingreses un número entero positivo distinto de 1, ingresa un número y presiona Enter.

El programa luego mostrará si el número ingresado es primo o compuesto.

Código completo de main.cpp

#include <iostream>
#include <math.h>

using namespace std;

bool isPrime(int n)
{
    if (n == 1)
        return false; // 1 no es un número primo

    for (int i = 2; i <= sqrt(n); i++)
    {
        if (n % i == 0)
            return false;
    }

    return true;
}

int main()
{
    cout << "\n\nWelcome to LabEx :-)\n\n\n";
    cout << " ===== Most Efficient Program to determine if the entered number is Prime or not. ===== \n\n";

    cout << " ===== Note: 1 is neither Prime nor Composite. ===== \n\n";

    int n;
    bool prime = false;

    cout << " Enter a positive integer other than 1 :  ";
    cin >> n;

    prime = isPrime(n);

    if (prime)
    {
        cout << "\n\nThe entered number " << n << " is a Prime number.";
    }
    else
    {
        cout << "\n\nThe entered number " << n << " is Composite number.";
    }

    cout << "\n\n\n";

    return 0;
}

Resumen

En este laboratorio, aprendimos cómo comprobar si un número dado es primo o compuesto en C++. Utilizamos una función para determinar si el número dado era primo basándonos en si era divisible por cualquier número aparte de 1 y sí mismo. Luego, usamos esta función en main() que tomaba la entrada del usuario y mostraba si el número era primo o compuesto.