Java - BUCLES AYUDA!

 
Vista:
sin imagen de perfil
Val: 25
Ha aumentado su posición en 154 puestos en Java (en relación al último mes)
Gráfica de Java

BUCLES AYUDA!

Publicado por Patricia (10 intervenciones) el 17/06/2021 19:10:43
Dado un número entero positivo queremos saber todos sus factores primos, es decir, los números primos que dividen a un número dado.

Por ejemplo, si el número es number = 5022004,

esto también es, number = 13* 13* 17 * 19* 23* 2*2 por lo que queremos

imprimir esta salida:

2 13 17 19 23

Otro ejemplo: si el número es number = 2122848, queremos imprimir la siguiente salida:

2 3 7 13
En primer lugar necesitamos decidir el algortimo y el tipo de bucles que vamos a usar.

Sabemos que un número al menos tiene dos factores: 1 y él mismo. Otros factores (si existieran) deben estar entre esos dos números.

Como no vamos a imprimir el 1, tendremos que comprobar todos los números entre 2 y él mismo (ambos incluidos).

Selecciona el bucle exterior que más se ajusta:

A) for (int factor = 1; factor <= number; factor++)

B)for (int factor = 2; factor <= number; factor++)

C) for (int factor = 2; factor < number; factor++)

D) factor = 2
while (factor < number){
___________
factor++;
}


E) factor = 1
while (factor <= number){
___________
factor++;
}

Seleccione una opción






Ya hemos decidido el tipo de bucle. Ahora lo que tenemos que hacer es comprobar si el número es divisible por el factor. La operación number % factor devuelve un 0 si number es divisible entre factor (su resto es 0).

Sin embargo, un número puede ser divisible varias veces por el mismo factor. Por ejemplo, los factores de 4 son 2 y 1. Los mismos factores se aplican a 8 o 16. Por lo tanto, una vez que se encuentra un número que es divisible hay que dividirlo tantas veces como sea necesario hasta que deje de ser divisible. Necesitamos un bucle interno (que tiene que ir situado dentro del bucle externo).

Selecciona el fragmento de código que puede ser utilizado para implementar el bucle interno:

Asegúrate que seleccionas las respuestas correctas (las respuestas incorrectas restan puntos):

A ) while (number % factor == 0){
number = number / factor;
}
B ) while (number % factor == 0){
factor = number / factor;
}
C ) while (number % factor != 0){
number = number / factor;
}









Finalmente queremos imprimir el factor encontrado solo una vez. Para este caso se pueden implementar soluciones diferentes.

Usaremos una variable llamada countinicializada a cero fuera del bucle exterior.

Selecciona todas las posibles soluciones para este problema:

Asegúrate que seleccionas las respuestas correctas (Las respuestas incorrectas restan puntos):



A) Dentro del bucle interno: incrementamos la variable (count++) ++) y comprobamos si su valor es diferente de 1.
Si es diferente de 1(if (count != 1)), imprimimos el factor.
Fuera del bucle interno, pero dentro del bucle externo: ponemos la variable a 0 (count= 0).


B) Dentro del bucle interno: incrementamos la variable (count++).
++). Fuera del bucle interno, pero dentro del bucle externo: comprobamos el valor de count.
Si es diferente de 0 (if (count != 0)),imprimimos el factor y ponemos la variable a 0 (count= 0)


C) Dentro del bucle interno: incrementamos la variable (count++).
Fuera del bucle interno, pero dentro del bucle externo: comprobamos su valor.
Si es diferente de 1 (if (count != 1)), imprimimos el factor y ponemos la variable a 0 (count= 0).


D) Dentro del bule interno: incrementamos la variable (count++)y comprobamos que el valor es 1. Si el valor es 1 (if (count == 1)), imprimimos el factor.
Fuera del bucle interno, pero dentro del externo: ponemos la variable a 0(count= 0).


E) Dentro del bucle interno: ponemos la variable a 1 (count=1).
Fuera del bucle interno pero dentro del externo:comprobamos su valor.
Si es diferente de 1 (if (count != 1)), imprimimos el factor. Ponemos la variable a 0 (count= 0) (fuera del bucle interno pero dentro del bucle externo).
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

BUCLES AYUDA!

Publicado por Santiago (1 intervención) el 20/09/2021 13:38:25
tienes ya la respuesta?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar