fbpx

Cómo saber si un número es primo o no, usando un ciclo for en C++.

  • Cómo saber si un número es primo o no, usando un ciclo for en C++.

    Posted by Enzo Ariel Balderrama on 12 enero, 2023 en 11:43 am

    Hola, llevo tiempo intentando y no me sale. Mi problema es este, a la hora de poner un n° primo sale todo bien. Pero cuando no lo es se repite el cout “Es un numero primo.” Hasta que al final sale que no lo es.

    • Esta discusión fue modificada 1 año, 3 meses por  Angel Sánchez. Motivo: Se mejoró el título
    Angel Sánchez respondido 1 año, 3 meses 2 Miembros · 5 Respuestas
  • 5 Respuestas
  • Enzo Ariel Balderrama

    Miembro
    12 enero, 2023 en 11:54 am
  • Angel Sánchez

    organizador
    12 enero, 2023 en 12:34 pm

    Ya estoy preparando la respuesta, pero me puedes ir diciendo cual es tu logica en tu programa? Para ver en que más te puedo ayudar 😀

  • Angel Sánchez

    organizador
    12 enero, 2023 en 1:13 pm

    Te dejo el código y anexo el archivo 😀

    // Crear un programa en C++ que diga si un numero es primo o no.

    #include <iostream>

    using namespace std;

    int main() {

    int num = 0, divisiones = 2, resultado = 0;

    //Pide al usuario que ingrese un número para determinar si es primo o no

    cout << "Ingrese un numero para saber si es primo o no: ";

    cin >> num;

    //Verifica si el número es menor o igual a 1. Si es así, no es primo y termina el programa

    if (num <= 1) {

    cout << num << " no es primo." << endl;

    return 0;

    }

    //Ciclo for para recorrer desde 2 hasta el número dado.

    for (divisiones = 2; divisiones < num; divisiones++) {

    //Obtiene el residuo de la división

    resultado = num % divisiones;

    //Si el residuo es cero, entonces el número no es primo y termina el programa

    if (resultado == 0) {

    cout << num << " no es primo." << endl;

    return 0;

    }

    }

    //Si se ha recorrido el ciclo y no se ha encontrado ningún número divisible, entonces el número es primo.

    cout << num << " es primo." << endl;

    //Termina el programa

    return 0;

    }

  • Enzo Ariel Balderrama

    Miembro
    12 enero, 2023 en 1:33 pm

    Yo quería que cuando el contador marcara 2 me diera el numero como ‘Primo’ y cuando fuese >2 lo marque como ‘No primo’. Ahora comprendo, yo usé la cantidad de veces que el resto daba 0, y así el contador aumenta. Y probablemente se repetía la respuesta una y otra vez porque no habia ningun codigo que le indique que pare a excepción de (division <= num), y por eso paraba con la misma cantidad del numero. Basicamente mi contador no hacia nada, y el primer “if” no sirve.

    Tambien comprendí por fin el uso del codigo ‘return 0’

    Gracias por la respuesta.

    • Angel Sánchez

      organizador
      12 enero, 2023 en 1:48 pm

      De nada. La idea es que vayan surgiendo estas dudas y vayan analizando todo durante su aprendizaje. Aquí te dejo otro ejemplo de como llegar al mismo resultado usando temas que verás más adelante en el curso:

Inicia sesión para responder.

Start of Discussion
0 de 0 respuestas Junio 2018
Ahora