Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Obtener divisores de dividir un número por 2

Estas en el tema de Obtener divisores de dividir un número por 2 en el foro de C/C++ en Foros del Web. Hola, estoy empezando a aprender a programar en C++ pero es la primera vez que lo veo, no tengo ni idea de nada y tengo ...
  #1 (permalink)  
Antiguo 12/10/2008, 11:11
yhh
 
Fecha de Ingreso: octubre-2008
Mensajes: 3
Antigüedad: 15 años, 6 meses
Puntos: 0
Obtener divisores de dividir un número por 2

Hola, estoy empezando a aprender a programar en C++ pero es la primera vez que lo veo, no tengo ni idea de nada y tengo que entregar un ejercicio.
Se trata de realizar un programa que obtenga los divisores de dividir un número por 2, es decir, para por ejemplo el 16, el programa tendría que devolver 8, 4, 2. Por ahora sólo sé cómo hacer un programa que lee un número y escribe dicho número multiplicado o dividido por otro número dado. Pero cómo hago para que me haga una operación con el último resultado obtenido?

Un saludo y gracias de antemano.
  #2 (permalink)  
Antiguo 12/10/2008, 11:43
Avatar de dogduck  
Fecha de Ingreso: enero-2006
Ubicación: ¿Atlantida, Hesperides, Islas afortunadas?
Mensajes: 2.231
Antigüedad: 18 años, 4 meses
Puntos: 19
Respuesta: Obtener divisores de dividir un número por 2

Hola, el algoritmo seria:

var X entero
var Divisor entero
var salir entero

salir=0
mientras salir=0 hacer
si X/2 = Parte entera (X/2) entonces
Divisor = X/2
Imprime por pantalla " Divisor = " , Divisor
X=Divisor
fin si
Sino (else)
salir=1
fin mientras

No lo he probado, pero creo que funcionaria. Solo te queda implementarlo en C, en pascal, en lo que desees

salu2
  #3 (permalink)  
Antiguo 12/10/2008, 11:51
yhh
 
Fecha de Ingreso: octubre-2008
Mensajes: 3
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Obtener divisores de dividir un número por 2

Eso lo tengo que escribir tal cual? es que no me entero de nada, y tampoco es eso lo que tengo en mis apuntes...
  #4 (permalink)  
Antiguo 12/10/2008, 17:22
yhh
 
Fecha de Ingreso: octubre-2008
Mensajes: 3
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Obtener divisores de dividir un número por 2

Hola de nuevo. He hecho lo siguiente, no sé si estará bien ni si tendrá sentido...

#include <iostream>
using namespace std;
int main (){
int x; divisor; i;
i=0
while(i==0){
cout<<divisor=x/2<<"\n";
}
divisor=x
else if(i==1){
cout<<divisor=x/2<<"\n";
} else{
cout<<divisor=x<<"\n";
}
}
  #5 (permalink)  
Antiguo 13/10/2008, 18:06
 
Fecha de Ingreso: agosto-2008
Ubicación: Mi casa!!! Perú-Aqp
Mensajes: 28
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Obtener divisores de dividir un número por 2

hola revise tu codigo y no compila
#include <iostream>
using namespace std;
int main (){
//primero en tu funcion dices q retorna un entero no puedes usar el cout abajo.
int x; divisor; i;//aqui se separa con comitas seria asi int x, divisor,i;
i=0
while(i==0){ // no entiendo para que preguntas esto siempre hara porq i en nigun momento de tu codigo cambia el
cout<<divisor=x/2<<"\n";// bueno aqui si stas buscando los divisores
}
divisor=x
else if(i==1){// aqui .... supongo q no puedes poner un else if porq primero es el if
cout<<divisor=x/2<<"\n";
} else{
cout<<divisor=x<<"\n";
}
}
trate de entender lo q hiciste y quedo algo asi
mira

void diviso (int x) // recibimos un valor x
{
int divisor=0, i=0;

cout<<"divisores: "<<endl;
while(x!=1) //mientras x sea diferente d uno hara lo d abajo
{

divisor=x/2;//dividims para sacar los divisores ejemplo 16/2=8
cout<<divisor<<endl;//imprimes el 8

x=divisor;//le das a x el nuevo valor q seria 8 valdria

}
// entra al while y pregunta 8 es diferente de uno verdadero .....entonces entra y
//divide divisor= 8/2=4
//imprimes el 4
//x recibe el valor de 4 (x= 4)
//ingresa al while nuevamente pregunta 4 es diferente de uno si
// haces mismo divisor= 4/2= 2
//imprimes 2
//x=2;
//preguntas 2 es diferente de 1 si
//divisor = 2/2=1
//imprimes 1
// entra y pregunta 1 es diferente de uno falso termina y te muestra el 8 4 2 1


}
void main()
{
int s;
cin>>s;
diviso(s);
}
//creo q quedaria algo asi espero te ayude en algo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:56.