[C con Clase] ayuda con el siguiente codigo

Yolmer Rosales yolmer.rosales en gmail.com
Vie Dic 7 11:18:21 CET 2012


Hola francisco me parece que tu código le quedan todavía algunas
correcciones aparte de las que ya te fueron indicadas

int main()
> {
> int x;
> do
> {
> int y=3;
> cout << "ingrese un numero exepto 0 para mostrar sus factores su su
> seleccion es cero 0 el programa se cerara:";
> cin >> x;
> while(x%2==0);
>
{
> cout<<"2" <<"*";
> x=x/2;
> }
>
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

>

> while(x>y);
> {
> if(x%y==0)
> {cout<<"y" <<"*";
> x=x/y;}
> else
> {y=y+2;
> continue;}
> }
> }
> while(!x==0);
> }
>
> Yo haría lo siguiente

si el número es menor que 2 encargarme de esa entrada inmediatamente
si no
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

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

Si se rescata un divisor se hace la división y se repite hasta llegar a un
caso final
a) un  número primo
b) 1 o cero

Bien suerte
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20121207/d66a9c90/attachment.html>


Más información sobre la lista de distribución Cconclase