Como sabrás, un número es primo si solamente es divisible por sí mismo y por la unidad, pero no se toma en cuenta el 1, por lo que los números primos empiezan desde el 2, además, un número primo no tendría que tener más de 2 divisores, o dicho de otra forma, no puede ser divisible entre más de dos números.
Sabiendo esto, puedes hacer lo siguiente:
Código C++:
Ver originalint numero, i, divisores = 0;
cout << "Ingrese un numero: "; cin >> numero;
if (numero < 2) {
do {
clrscr();
cout << "Ingrese un numero: "; cin >> numero;
} while (numero < 2);
}
for (i = 1; i <= numero; i++)
if (numero % i == 0)
divisores++;
cout << "El numero ingresado " << (divisores > 2 ? "no es primo" : "es primo");
Declaro tres variables: el número a ingresar, un contador para el bucle que usaré y un acumulador para los divisores del número. Luego de ingresar el número, verifico que sea mayor o igual a 2, de no serlo, limpio la pantalla y le pido al usuario que vuelva a ingresar el número, esto se repetirá en un bucle mientras el número sea menor a 2.
Ya con el número válido, utilizo un bucle que irá desde el 1 (el primer divisor), hasta el número ingresado. En cada iteración, obtengo el residuo de la división entre el número ingresado y el valor actual del contador del bucle, si dicho valor es igual a cero, es decir, si el número ingresado es divisible por el valor del contador en dicha iteración, aumento en 1 el valor del acumulador
divisiores.
Finalmente, si obtuve más de dos divisores, quiere decir que el número no es primo, caso contrario, lo es. En cualquiera de los casos, se imprime el respectivo mensaje.
Saludos