Java - ayuda porfavor

 
Vista:
sin imagen de perfil

ayuda porfavor

Publicado por jamie (4 intervenciones) el 08/12/2023 16:27:24
alguien ayudeme desarrollando estos ejercicios java

1.Generar 30 números aleatorios y mostrar los números primos y la suma de ellos.
2.Generar 30 números aleatorios y mostrar el mayor de los múltiplos de 5 y el mayor de los múltiplos de 3.
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 Kabuto
Val: 3.428
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

ayuda porfavor

Publicado por Kabuto (1381 intervenciones) el 08/12/2023 17:58:04
Hola necesitas un método para evaluar si un número es primo o no.

Por ejemplo este:
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
private static boolean esPrimo(int num) {
 
		if (num <= 1)
			return false; //1 y menores de 1, no pueden ser primos.
		else if (num == 2)
			return true; //2 si es primo, es el único PAR que puede serlo
		else if (num % 2 == 0)
			return false; //Si no es un 2, descartamos el resto de PARES
		else {
			//A partir de aquí, solo evaluaremos numeros IMPARES.
			/*
			 * Comprobaremos si existe algún divisor para este número,
			 * a parte del 1 y el propio número.
			 * Si encontramos algún divisor más, es que no es primo y
			 * devolvemos "falso"
			 * Basta con comprobar valores entre 2 y la mitad del número.
			 * Por ejemplo, si el número es 23, pues buscaremos divisores
			 * entre el rango de 2 a 11.
			 */
			for (int divisor = 2; divisor < num/2; divisor++) {
				if (num % divisor == 0)
					return false;
			}
		}
		//No se han encontrado nuevos divisores, por tanto, es un número primo.
		return true;
	}

Disponiendo de este método, solo hay que generar 30 números enteros al azar, comprobar mediante ese método si es primo y en caso de serlo, mostrarlo en pantalla y acumular una suma.

Al terminar la generación de los 30 números, el programa termina mostrando la suma.
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
47
48
49
50
51
52
53
54
55
56
import java.util.Random;
 
public class SumaPrimos {
 
	public static void main(String[] args) {
		Random azar = new Random();
		int sumaPrimos = 0;
 
		//Generaremos 30 números al azar entre 0 y 99, mostraremos los primos y los iremos sumando
		System.out.println("Primos generados:");
		for (int i = 0; i < 30; i++) {
			int numero = azar.nextInt(100);
			if (esPrimo(numero)) {
				System.out.print(numero + " ");
				sumaPrimos += numero;
			}
		}
 
		//Mostramos la suma de primos
		System.out.println("\n\nSuma total: " + sumaPrimos);
		System.out.println("\n\t\tFIN DE PROGRAMA");
 
	}
 
	/*
	 * Método para evaluar si un número es primo.
	 */
	private static boolean esPrimo(int num) {
 
		if (num <= 1)
			return false; //1 y menores de 1, no pueden ser primos.
		else if (num == 2)
			return true; //2 si es primo, es el único PAR que puede serlo
		else if (num % 2 == 0)
			return false; //Si no es un 2, descartamos el resto de PARES
		else {
			//A partir de aquí, solo evaluaremos numeros IMPARES.
			/*
			 * Comprobaremos si existe algún divisor para este número,
			 * a parte del 1 y el propio número.
			 * Si encontramos algún divisor más, es que no es primo y
			 * devolvemos "falso"
			 * Basta con comprobar valores entre 2 y la mitad del número.
			 * Por ejemplo, si el número es 23, pues buscaremos divisores
			 * entre el rango de 2 a 11.
			 */
			for (int divisor = 2; divisor < num/2; divisor++) {
				if (num % divisor == 0)
					return false;
			}
		}
		//No se han encontrado nuevos divisores, por tanto, es un número primo.
		return true;
	}
 
}


Intenta ahora tú el segundo ejercicio.
De nuevo hay que generar 30 números al azar.

Por cada número generado, has de comprobar si es múltiplo de 5 o de 3.
Para saber si un número es múltiplo de otro, te basta con dividirlos entre ellos y comprobar si el resto (o residuo) de la división es 0.

En Java, para hacer esto usamos el operador "módulo" que se representa con %
Entonces, si numero % 5 == 0, es que ese número sí es múltiplo de 5.

Pues aplicando esto, comprueba si cada número generado es múltiplo de 5 o de 3.

Emplea dos variables para guardar los mayores múltiplos de uno y otro. Por ejemplo:
1
2
int mayorMult5 = 0;
int mayorMult3 = 0;

Cada vez que encuentres un múltiplo de 5, comprueba si es mayor que el valor guardado en mayorMult5 y en caso afirmativo, le asignas ese nuevo valor.
Lo mismo cuando encuentres un múltiplo de 3, con la variable mayorMult3

Cuando termine el bucle que genera los 30 números, terminas mostrando los mayores que has encontrado.


Inténtalo, no importa si no lo consigues o si te atascas, haz un intento, comparte por aquí lo que consigas y te ayudamos a corregir y completar lo que haga falta.

Un saludo.
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

ayuda porfavor

Publicado por jamie (4 intervenciones) el 08/12/2023 19:10:59
muchas gracias
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