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


 


Tema destacado: Página de elhacker.net en Google+ Google+


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java (Moderadores: Debci, Leyer)
| | | |-+  [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 941 veces)
Wick3D

Desconectado Desconectado

Mensajes: 145


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


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

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
CoAdmin
***
Desconectado Desconectado

Mensajes: 12.729



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

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 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: 220



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

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 »

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
Java y Numeros Primos
Programación General
SirLanceCC 6 33,301 Último mensaje 1 Octubre 2006, 02:49
por sirdarckcat
Program java numeros primos « 1 2 3 »
Java
painkillerpucela 28 75,775 Último mensaje 18 Agosto 2010, 15:36
por Debci
numeros primos y factoriales en java
Java
leliCabello 7 12,189 Último mensaje 5 Noviembre 2009, 22:33
por leliCabello
[Python 2.6] Funcion generadora de Numeros primos (5.761.455 primos en 19 seg)
Scripting
katas 2 6,894 Último mensaje 10 Marzo 2010, 01:50
por Novlucker
Array con numeros primos.
Programación C/C++
Ja_90 2 8,011 Último mensaje 5 Septiembre 2014, 17:16
por Ja_90
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines