El siguiente programa escrito en C++ solicita al usuario que ingrese un número para verificar si se trata de un número primo o no. Recordemos que un número primo se define como un número natural mayor que 1, y que sólo tiene dos divisores: 1 y él mismo. Si el número es menor o igual a 1, se imprime un mensaje indicando que el número no es primo, ya que por definición un número primo debe ser mayor que 1.

#include <iostream>

int main() {
    int number;
    std::cout << "Ingrese un número: ";
    std::cin >> number;
    if (number <= 1) {
        std::cout << number << " no es un número primo." << std::endl;
    } else {
        bool isPrime = true;
        for (int i = 2; i <= number / 2; i++) {
            if (number % i == 0) {
                isPrime = false;
                break;
            }
        }
        if (isPrime) {
            std::cout << number << " es un número primo." << std::endl;
        } else {
            std::cout << number << " no es un número primo." << std::endl;
        }
    }
    return 0;
}

Si no lo es, se continúa con la ejecución del programa. Se utiliza un bucle 'for' para verificar si el número es divisible por algún número de entre 2 y la mitad del número en cuestión, el bucle comienza en 2 porque todos los números enteros son divisibles por 1, y termina en number / 2 porque no es necesario buscar divisores más allá de la mitad del número. 

Si se encuentra un divisor, se establece una bandera 'isPrime' en falso y se termina el bucle. Finalmente, se imprime un mensaje según el valor de la bandera 'isPrime', determinando así si se trata de un número primo.

El código ha sido probado en Code::Blocks en Windows, por lo que es completamente funcional.

Puedes descargar el código .CPP aquí.

NOTA: Si al correr el programa los acentos o caracteres especiales no se muestran correctamente, puedes usar esta solución: ¿Cómo mostrar acentos y caracteres especiales en programas escritos en C++?