Autor
|
Tema: [java]Reconocimiento de números primos en array (Leído 8,708 veces)
|
Wick3D
Desconectado
Mensajes: 147
<?php echo "Im your source code"; ?>
|
Buenas a todos. Estoy practicando ya que llevo un poco mal el tema arrays y terminé el siguiente programa que rellena un array con numeros aleatorios. import java.util.Scanner; import java.util.Random; public class NumerosPrimos { public static void main (String[] args ) { Scanner input = new Scanner (System. in); int num; System. out. println("Introduce longitud del array"); num = input.nextInt(); int[] numPrimo = new int[num]; //En este punto,la longitud del array es dado por la variable num. for (int i = 0; i < numPrimo.length; i++) { numPrimo[i] = rnd.nextInt(11); //Genera numeros aleatorios entre 1 y 10 if (numPrimo[i] % 2 == 0) { //calcula el contenido de la posicion del array entre 2 System. out. println("La posicion [" + i + "] con el numero " + numPrimo [i ] + " NO es un primo"); }else { System. out. println("La posicion [" + i + "] con el numero " + numPrimo [i ] + " es primo"); } } } }
El prorama funciona correctamente por la salvedad de que el 2 no me lo reconoce como número primo. ¿Alguna idea de como podría solventarlo?. Sé que será una tonteria pero quiero tener los fundamentos bien aprendidos antes de adentrarme en algo mas denso. Gracias de antemano por cualquier respuesta posible. Saludos.
|
|
|
En línea
|
|
|
|
engel lex
|
no se java, pero se algoritmia y matemática... y esto está mal terriblemente if (numPrimo[i] % 2 == 0) { //calcula el contenido de la posicion del array entre 2 System. out. println("La posicion [" + i + "] con el numero " + numPrimo [i ] + " NO es un primo"); }else { System. out. println("La posicion [" + i + "] con el numero " + numPrimo [i ] + " es primo"); }
según tu todo impar entre 1 y 10 es primo... como el 9? o el 1? recomiendo lectura sobre que son los números primos...
|
|
« Última modificación: 24 Diciembre 2016, 01:20 am por engel lex »
|
En línea
|
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
|
|
|
crack81
Desconectado
Mensajes: 222
|
Tu algoritmo solo sirve para calcular si un numero es Par pero NO para comprobar si un numero primo, debes recordar que los numeros primos son aquellos numeros que solo pueden ser dividos entre 1 y ellos mismo exceptuando el numero 2
ejemplo:
2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97
Tu programa estaria validando como numeros primos a valores como el numero 9.
|
|
|
En línea
|
Si C/C++ es el padre de los lenguajes entonces ASM es dios.
|
|
|
kingcreek
Desconectado
Mensajes: 16
|
Si es por el manejo de array vas bien, unicamente como te comentan calculas mal si un numero es primo o no, aun asi te dejo el arreglo del codigo. He separado el calculo de numero primo en un metodo aparte para que veas como es, y cambiado la condicion del if. import java.util.Scanner; import java.util.Random; public class NumerosPrimos { public static void main (String[] args ) { Scanner input = new Scanner (System. in); int num; System. out. println("Introduce longitud del array"); num = input.nextInt(); int[] numPrimo = new int[num]; //En este punto,la longitud del array es dado por la variable num. for (int i = 0; i < numPrimo.length; i++) { numPrimo[i] = rnd.nextInt(11); //Genera numeros aleatorios entre 1 y 10 if (!calcularSiEsPrimo(numPrimo[i])) { //calcula si el numero es primo o no System. out. println("La posicion [" + i + "] con el numero " + numPrimo [i ] + " NO es un primo"); }else { System. out. println("La posicion [" + i + "] con el numero " + numPrimo [i ] + " es primo"); } } } static boolean calcularSiEsPrimo(int n) { if(n==2) return true; //si es dos, directamente retorna true, ya que 2 es numero primo if (n%2==0) return false; //se comprueba si es multiplo de dos for(int i=3;i*i<=n;i+=2) { // de no serlo, se comprueba si es divisible entre un numero impar if(n%i==0) { return false; }// si no es primo, devuelve false } return true; // y si lo es, devuelve true } }
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Program java numeros primos
« 1 2 3 »
Java
|
painkillerpucela
|
28
|
87,099
|
18 Agosto 2010, 15:36 pm
por Debci
|
|
|
numeros primos y factoriales en java
Java
|
leliCabello
|
7
|
15,479
|
5 Noviembre 2009, 22:33 pm
por leliCabello
|
|
|
[Python 2.6] Funcion generadora de Numeros primos (5.761.455 primos en 19 seg)
Scripting
|
katas
|
2
|
9,839
|
10 Marzo 2010, 01:50 am
por Novlucker
|
|
|
Array con numeros primos.
Programación C/C++
|
Ja_90
|
2
|
26,140
|
5 Septiembre 2014, 17:16 pm
por Ja_90
|
|
|
igualar todos los numeros dentro del array - Ejercicio Java
« 1 2 »
Ejercicios
|
shishioku
|
11
|
7,450
|
12 Julio 2019, 04:25 am
por WHK
|
|