elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recopilación Tutoriales y Manuales Hacking, Seguridad, Privacidad, Hardware, etc


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  [java]Reconocimiento de números primos en array
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [java]Reconocimiento de números primos en array  (Leído 8,362 veces)
Wick3D

Desconectado Desconectado

Mensajes: 147


<?php echo "Im your source code"; ?>


Ver Perfil
[java]Reconocimiento de números primos en array
« en: 24 Diciembre 2016, 00:56 am »

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.

Código
  1. import java.util.Scanner;
  2. import java.util.Random;
  3.  
  4.    public class NumerosPrimos {
  5.        public static void main(String[] args) {
  6.  
  7.            Random rnd = new Random();
  8.            Scanner input = new Scanner(System.in);
  9.            int num;
  10.  
  11.            System.out.println("Introduce longitud del array");
  12.            num = input.nextInt();
  13.  
  14.            int[] numPrimo = new int[num];          //En este punto,la longitud del array es dado por la variable num.
  15.  
  16.            for (int i = 0; i < numPrimo.length; i++) {
  17.                numPrimo[i] = rnd.nextInt(11);      //Genera numeros aleatorios entre 1 y 10
  18.                if (numPrimo[i] % 2 == 0) {             //calcula el contenido de la posicion del array entre 2
  19.                    System.out.println("La posicion [" + i + "] con el numero " + numPrimo[i] + " NO es un primo");
  20.                }else {
  21.                    System.out.println("La posicion [" + i + "] con el numero " + numPrimo[i] + " es primo");
  22.                }
  23.            }
  24.        }
  25.    }

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
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: [java]Reconocimiento de números primos en array
« Respuesta #1 en: 24 Diciembre 2016, 01:18 am »

no se java, pero se algoritmia y matemática... y esto está mal terriblemente

Código
  1.                if (numPrimo[i] % 2 == 0) {             //calcula el contenido de la posicion del array entre 2
  2.                    System.out.println("La posicion [" + i + "] con el numero " + numPrimo[i] + " NO es un primo");
  3.                }else {
  4.                    System.out.println("La posicion [" + i + "] con el numero " + numPrimo[i] + " es primo");
  5.                }


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 Desconectado

Mensajes: 222



Ver Perfil
Re: [java]Reconocimiento de números primos en array
« Respuesta #2 en: 24 Diciembre 2016, 01:27 am »

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 Desconectado

Mensajes: 16


Ver Perfil
Re: [java]Reconocimiento de números primos en array
« Respuesta #3 en: 26 Diciembre 2016, 16:59 pm »

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.

Código
  1. import java.util.Scanner;
  2. import java.util.Random;
  3.  
  4.    public class NumerosPrimos {
  5.        public static void main(String[] args) {
  6.  
  7.            Random rnd = new Random();
  8.            Scanner input = new Scanner(System.in);
  9.            int num;
  10.  
  11.            System.out.println("Introduce longitud del array");
  12.            num = input.nextInt();
  13.  
  14.            int[] numPrimo = new int[num];          //En este punto,la longitud del array es dado por la variable num.
  15.  
  16.            for (int i = 0; i < numPrimo.length; i++) {
  17.                numPrimo[i] = rnd.nextInt(11);      //Genera numeros aleatorios entre 1 y 10
  18.                if (!calcularSiEsPrimo(numPrimo[i])) {             //calcula si el numero es primo o no
  19.                    System.out.println("La posicion [" + i + "] con el numero " + numPrimo[i] + " NO es un primo");
  20.                }else {
  21.                    System.out.println("La posicion [" + i + "] con el numero " + numPrimo[i] + " es primo");
  22.                }
  23.            }
  24.        }
  25.  
  26.  
  27.          static boolean calcularSiEsPrimo(int n) {
  28.            if(n==2) return true; //si es dos, directamente retorna true, ya que 2 es numero primo
  29.            if (n%2==0) return false; //se comprueba si es multiplo de dos
  30.            for(int i=3;i*i<=n;i+=2) { // de no serlo, se comprueba si es divisible entre un numero impar
  31.              if(n%i==0) { return false; }// si no es primo, devuelve false
  32.            }
  33.            return true; // y si lo es, devuelve true
  34.          }
  35.    }
  36.  
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Program java numeros primos « 1 2 3 »
Java
painkillerpucela 28 86,264 Último mensaje 18 Agosto 2010, 15:36 pm
por Debci
numeros primos y factoriales en java
Java
leliCabello 7 15,234 Último mensaje 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,537 Último mensaje 10 Marzo 2010, 01:50 am
por Novlucker
Array con numeros primos.
Programación C/C++
Ja_90 2 25,789 Último mensaje 5 Septiembre 2014, 17:16 pm
por Ja_90
igualar todos los numeros dentro del array - Ejercicio Java « 1 2 »
Ejercicios
shishioku 11 6,686 Último mensaje 12 Julio 2019, 04:25 am
por WHK
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines