Programa de números primos de C ++ [cerrado]

Estoy trabajando en un programa C ++ que determina e imprime los números primos entre 3 y un entero 'x' que el usuario ingresa. Supongo que necesito un doble bucle anidado para esto, uno para iterar de 3 a x y el otro para verificar si el número es primo. Creo que se necesita hacer algo como ir de 2 a x-1? Simplemente no estoy seguro de cómo hacer esta sintaxis. ¡Gracias por cualquier ayuda! :)

EDIT: esto es lo que tengo:

#include <iostream>
#include <cmath>

using std::cout;
using std::endl;
using std::cin;

int main(){

   int x;
   int i;
   int j;

   cout << "Please enter an integer 'x' greater than 3: " << endl;

   cin >> x;

   if (x <= 3){

        cout << "Please enter new value 'x' greater than 3: " << endl;

        cin >> x;
   }
        for(int i=3; i<=x; i++){
                for(j=2; j<i; j++){
                   if(i%j == 0)
                        break;
                   else if(i == j+1);
                        cout << i << endl;
                   }
        }
        return 0;
}

Y cuando entro en 10 como 'x' obtengo la salida: 3 5 5 5 7 7 7 7 7 7 9

¿Alguien puede decirme cómo solucionar esto?

Respuestas a la pregunta(3)

Su respuesta a la pregunta