Comprobar si un número es primo en C++

Programa C++ que lee un número entero N por teclado y calcula si  el número es primo. 
Un número es primo si solo es divisible por 1 y por él mismo.
Ejemplos de números primos: 2, 3, 5, 7, 11, ....
/*
 * Programa C++
 * Comprobar si un número es primo
 *
 */
#include <iostream>
using namespace std;
int main()
{
    //declaración de variables
    int n, i;
	
    //introducir por teclado el número entero	
    cout << "\nIntroduce un numero: ";
    cin >> n;

    if(n==1)  //si se lee un 1, se imprime directamente que no es primo                                           
    {
        cout << "\nNo es primo" << endl;
    }
    else
    {
        i=2;          //i es el divisor
        while(n%i!=0) //mientras el número sea divisible por el divisor
        {
            i++;      //siguiente divisor
        }
        //cuando sale del while, si el divisor es el propio número
        //entonces el número es primo
        if(i==n)      
            cout << "\nPrimo" << endl;   
        else
            cout << "\nNo es primo" << endl; 
    }
    system("pause");
}

1 comentario:

  1. yo hice una versión mucho más facil de entender, utilizo un bucle for y "pregunto" si al realizar la división el resultado fue un entero, si es así le sumo 1 a auxiliar. y así hasta que se acabe el bucle, luego vuelvo a "preguntar" si en auxiliar el valor es exactamente igual a 2 entonces es primo caso contrario no lo es.


    #include
    #include

    using namespace std;

    int main(void){

    int num;

    cout<<"Bienvenido! ingrese un numero entero para ver si es un numero primo. "<>num;

    int aux = 0,i;

    for (i = 1 ; i <= num ;i++){
    if (num % i == 0){
    aux++;
    }else{
    }
    }
    if( aux == 2){
    cout<<"El numero es impar. "<<endl;
    }else{
    cout<<"EL numer NO es impar. "<<endl;
    }

    getch();
    return 0;
    }

    ResponderEliminar