Hola francisco me parece que tu código le quedan todavía algunas correcciones aparte de las que ya te fueron indicadas<br><br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div><div dir="ltr">int main()<br>
{<br>
int x; <br>
do<br>
{<br>
int y=3;<br>
cout << "ingrese un numero exepto 0 para mostrar sus factores su su seleccion es cero 0 el programa se cerara:";<br>
cin >> x;<br>
while(x%2==0);</div></div></blockquote><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div dir="ltr">{<br>
cout<<"2" <<"*";<br>
x=x/2;<br>
}<br></div></div></blockquote><div>Ofreces salir con 0 pero no es cierto. Observa el resto de dividir 0 / 2 es cero por lo tanto vas a entrar en un bucle infinito ya que 0/ 2 te vuelve a dar cero, por otra parte si x vale 1 no entra al primer bucle y tampoco al segundo pero no sale del bucle principal si x vale 2 entra al primer bucle y sale como 1 y te vuelve a dar problemas en resumen creo que debes reescribir tu código completo</div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div></div></blockquote><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div><div dir="ltr">
while(x>y);<br>
{<br>
if(x%y==0)<br>
{cout<<"y" <<"*";<br>
x=x/y;}<br>
else <br>
{y=y+2;<br>
continue;}<br>
}<br>
}<br>
while(!x==0);<br>
}<br>
</div></div><div dir="ltr"><br></div></blockquote><div>Yo haría lo siguiente</div><div><br></div><div>si el número es menor que 2 encargarme de esa entrada inmediatamente</div><div>si no</div><div>Calcular la raíz cuadrada entera del número y probar con un bucle for desde 2 hasta esa raíz cuadrada todos los posibles divisores y rescatar el divisor más pequeño</div>
<div><br></div><div>Si termina el bucle sin detectar ningún divisor entonces es primo y debo hacerme cargo de eso aparte indicando por supuesto que sus factores son 1 y el mismo número</div><div><br></div><div>Si se rescata un divisor se hace la división y se repite hasta llegar a un caso final</div>
<div>a) un  número primo </div><div>b) 1 o cero</div><div><br></div><div>Bien suerte</div><div><br></div><div><br></div><div><br></div><div> </div></div><br>