Java - factores primos

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

factores primos

Publicado por duda (14 intervenciones) el 15/11/2020 13:05:33
Hola!!!, necesito ayuda con este ejercicio. Gracias!!!
Lo que no entiendo es lo de introducir el resultado en un vector
Un programa que lea del teclado un número entero, y lo descomponga en sus vectores primos
de manera que lo introduzca en un array bidimensional de la siguiente manera:
360 = 2 x 2 x 2 x 3 x 3 x 5 = 23 x 32 x 5
El algoritmo que diseñemos debe introducir el resultado en un vector con un formato parecido a:
vectorResultado = {{2,3},{3,2},{5,1}}
El programa debe producir como salida:
360 = 2^3 x 3^2 x 5
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
Imágen de perfil de Billy Joel
Val: 2.665
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

factores primos

Publicado por Billy Joel (876 intervenciones) el 15/11/2020 18:29:53
Podrías explicar mejor como se llega a esos números
360 = 2 x 2 x 2 x 3 x 3 x 5 = 23 x 32 x 5
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
sin imagen de perfil
Val: 47
Ha aumentado su posición en 2 puestos en Java (en relación al último mes)
Gráfica de Java

factores primos

Publicado por duda (14 intervenciones) el 15/11/2020 18:35:04
Lo que tengo que imprimir como salida es la descomposición en factores primos, por ejemplo con el 360= 2x2x2x3x3x5, el 2 se repite 3 veces, el 3 se repite 2 veces y el 5 se repite 1, lo que tendría que imprimir seria 360=2^3x3^2x5. El número se lee por teclado, el 360 es solo un ejemplo
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
Imágen de perfil de Billy Joel
Val: 2.665
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

factores primos

Publicado por Billy Joel (876 intervenciones) el 15/11/2020 18:48:39
Necesito que seas ms claro en tu explicación, la verdad no la logro captar.
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
sin imagen de perfil
Val: 47
Ha aumentado su posición en 2 puestos en Java (en relación al último mes)
Gráfica de Java

factores primos

Publicado por duda (14 intervenciones) el 15/11/2020 19:56:24
Un número se descompone factorialmente dividiendo el número entre sus divisores primos, hasta que solo quede el número 1. Y tengo que imprimir como salida esa descomposición, no se si me he explicado mejor.
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
Imágen de perfil de Billy Joel
Val: 2.665
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

factores primos

Publicado por Billy Joel (876 intervenciones) el 15/11/2020 20:01:24
Tu entiendes como se hace eso con tus manos, un lapiz y papel?
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
sin imagen de perfil
Val: 47
Ha aumentado su posición en 2 puestos en Java (en relación al último mes)
Gráfica de Java

factores primos

Publicado por duda (14 intervenciones) el 15/11/2020 20:12:10
E44569BB-DF38-47ED-9220-E36A5E6295C3
Lo que tengo que hacer es que imprima lo último.
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
Imágen de perfil de Billy Joel
Val: 2.665
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

factores primos

Publicado por Billy Joel (876 intervenciones) el 15/11/2020 20:40:36
Gracias. ya logré hacerlo.
Una regunta, el resultado se debe colocar en un vector o solo se debe imprimir así?
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
sin imagen de perfil
Val: 47
Ha aumentado su posición en 2 puestos en Java (en relación al último mes)
Gráfica de Java

factores primos

Publicado por duda (14 intervenciones) el 15/11/2020 20:44:46
Según el enunciado del ejercicio, una vez que descompuesto hay que introducirlo en un array bidimensional y ahí es donde no se que hacer.
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
sin imagen de perfil
Val: 47
Ha aumentado su posición en 2 puestos en Java (en relación al último mes)
Gráfica de Java

factores primos

Publicado por duda (14 intervenciones) el 15/11/2020 21:06:54
El array bidimensional tendría que quedar así vectorResultado = {{2,3},{3,2},{5,1}}, el primer termino es el número y despues las veces que se repite, por ejemplo el 2 se repite 3 veces y así con los demás, este sería con el 360 pero el array hay que hacerlo para cualquiera, ya que el número se tiene que leer por teclado
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
sin imagen de perfil
Val: 47
Ha aumentado su posición en 2 puestos en Java (en relación al último mes)
Gráfica de Java

factores primos

Publicado por duda (14 intervenciones) el 15/11/2020 21:31:32
No lo he usado nunca, es necesario usar List o Map para este ejercicio? O se podría hacer sin ello?
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
sin imagen de perfil
Val: 47
Ha aumentado su posición en 2 puestos en Java (en relación al último mes)
Gráfica de Java

factores primos

Publicado por duda (14 intervenciones) el 15/11/2020 23:42:43
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import java.util.*;
public class DescomposiciónEnNúmerosPrimos {
	final static Scanner TECLADO = new Scanner (System.in);
	public static void main(String[] args) {
		System.out.println("Introduzca un número entero: ");
		int [][] vectorResultado = new int [10][2];
		int n = TECLADO.nextInt();
		for (int i=2; i<=n;i++) {
			while (n%i==0) {
				n/=i;
				System.out.print(i + "x");
 
 
			}
 
		}
 
	}
 
}
Tengo esto, pero no creo que este bien...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Billy Joel
Val: 2.665
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

factores primos

Publicado por Billy Joel (876 intervenciones) el 15/11/2020 23:51:12
Sin usar List ni Map lo resolví así
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
public class Factorizacion {
 
    public static void main(String[] args) {
        int n = 360;
        int aux = n;
        String factores = "";
        int factor = 2;
        while (n > 1) {
            if (n % factor == 0) {
                n = n / factor;
                factores += " " + factor;
            } else {
                factor++;
            }
        }
        String[] arrayFactores = factores.trim().split(" ");
        factores = "";
        for (String f : arrayFactores) {
            if (!factores.contains(f)) {
                factores += f + " ";
            }
        }
        String[] arrayFactores2 = factores.trim().split(" ");
        int[][] matriz = new int[arrayFactores2.length][2];
        for (int j = 0; j < matriz.length; j++) {
            matriz[j][0] = Integer.parseInt(arrayFactores2[j]);
            matriz[j][1] = 0;
            for (int k = 0; k < arrayFactores.length; k++) {
                if (arrayFactores[k].equals(arrayFactores2[j])) {
                    matriz[j][1] += 1;
                }
            }
        }
        System.out.print(aux + " = [");
        for (int j = 0; j < matriz.length; j++) {
            System.out.print("(" + matriz[j][0] + "," + matriz[j][1] + ")");
            if (j + 1 < matriz.length) {
                System.out.print(", ");
            }
        }
        System.out.println("]");
    }
}

PD: Tuve que hacerlo de nuevo, primero lo había hecho con List y Map.

Cualquier duda solo escribe

Saludos,
Billy Joel
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil
Val: 47
Ha aumentado su posición en 2 puestos en Java (en relación al último mes)
Gráfica de Java

factores primos

Publicado por duda (14 intervenciones) el 15/11/2020 23:55:27
Muchas gracias!! Si me pudieras responder tambien a otra pregunta que tengo me harias un gran favor, es sobre este ejercicio.
Debemos hacer un algoritmo que rellene un vector de 30 número al azar entre 1 y 100, y
además nos mostrará la serie creciente de mayor tamaño que contiene el vector.
Por ejemplo si el vector generado es:
2 3 4 2 4 8 9 1 1 8 2 9 2 0 88 2 81 22 12 22 8 9 10 23 38 49 22 33 1 98
Debe imprimir:
Vector: 2 3 4 2 4 8 9 1 1 8 2 9 2 0 88 2 81 22 12 22 8 9 10 23 38 49 22 33 1 98
Mayor subserie creciente: 8 9 10 23 38 49

El vector aleatorio le imprimo, pero despues no soy capaz de imprimir la mayor subserie creciente. Saludos!!
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
Imágen de perfil de Billy Joel
Val: 2.665
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

factores primos

Publicado por Billy Joel (876 intervenciones) el 16/11/2020 00:01:07
Puedes mostrar el código que tienes.

Otra cosa si te ha gustado la respuesta sería bueno valorarla
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 47
Ha aumentado su posición en 2 puestos en Java (en relación al último mes)
Gráfica de Java

factores primos

Publicado por duda (14 intervenciones) el 16/11/2020 00:04:58
1
2
3
4
5
6
7
8
9
10
11
12
13
public class SerieCreciente {
 
	public static void main(String[] args) {
		int vector[] = new int[30];
		System.out.print("Vector: ");
		for (int i = 0; i <=29; i++) {
			vector[i] = (int) (Math.random() * 100 + 1);
			System.out.print(vector[i] + " ");
		}
 
 
	}
}
Este es el codigo que tengo, tengo que imprimir un vector aleatorio de números entre el 1 y el 100 y despues hacer lo de la mayor subserie creciente.
Una duda sobre el ejercicio anterior, como seria para imprimir la salida con exponentes, 360=2^3x3^2x5 , en vez de el vector?
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
Imágen de perfil de Billy Joel
Val: 2.665
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

factores primos

Publicado por Billy Joel (876 intervenciones) el 16/11/2020 01:57:28
Lo de la series crecientes lo resuelvo así:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
public class SerieCreciente {
 
    public static void main(String[] args) {
        int vector[] = new int[30];
        String series = "";
        int n = -1;
        System.out.print("Vector: ");
        for (int j = 0; j < 30; j++) {
            vector[j] = (int) (Math.random() * 100 + 1);
            System.out.print(vector[j] + " ");
            if (n == -1) {
                n = vector[j];
                series = n + " ";
            } else {
                if (vector[j] > n) {
                    n = vector[j];
                    series += n + " ";
                } else {
                    n = vector[j];
                    series += "\t" + n + " ";
                }
            }
        }
        System.out.println("\n\nSeries:");
        String[] a = series.split("\t");
        String[] b;
        String[] c = null;
        int size = 0;
        for (int j = 0; j < a.length; j++) {
            System.out.println(a[j]);
            b = a[j].split(" ");
            if (b.length > size) {
                c = b;
                size = b.length;
            }
        }
        System.out.println("La serie creciente mas larga es de " + size + " números");
        for (int j = 0; j < c.length; j++) {
            System.out.print(c[j]);
            if (j + 1 < c.length) {
                System.out.print(", ");
            }
        }
        System.out.println();
    }
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Billy Joel
Val: 2.665
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

factores primos

Publicado por Billy Joel (876 intervenciones) el 16/11/2020 02:59:41
Sobre tu pregunta: Una duda sobre el ejercicio anterior, como seria para imprimir la salida con exponentes, 360=2^3x3^2x5 , en vez de el vector?

Solo tienes que cambiar la forma en la que se imprime ;
1
2
3
4
5
6
7
8
System.out.print(aux + " = ");
for (int j = 0; j < matriz.length; j++) {
    System.out.print(matriz[j][0] + "^" + matriz[j][1]);
    if(j + 1 < matriz.length){
        System.out.print(" X ");
    }
}
System.out.println();

PD: Agradecería mucho valores las respuestas

Saludos,
Billy Joel
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 47
Ha aumentado su posición en 2 puestos en Java (en relación al último mes)
Gráfica de Java

factores primos

Publicado por duda (14 intervenciones) el 16/11/2020 08:18:53
Muchas gracias por resolverme las dudas que tenía!!!
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