Foro de elhacker.net

Programación => Java => Mensaje iniciado por: Electoniko- en 2 Diciembre 2009, 07:33 am



Título: Llenar una matriz con primos al azar! :S
Publicado por: Electoniko- en 2 Diciembre 2009, 07:33 am
Primero que nada hola a todos, les cuento que estoy desesperado.

Tengo que hacer un "pequeño" programa en java donde, primero:

1. Un usuario diga las dimensiones de una matriz por teclado (hecho)

2. Mostrar esa matriz, con numero PRIMOS del 100 al 1000 al azar en dicha matriz (no hecho, varios dolores de cabeza)

He aqui lo que tengo avanzado



package matrizprima;

import java.io.*;
import java.util.Random;


/**
 *
 * @author Felipe Poblete
 */
public class Main {

  
    public static void main(String[] args) throws IOException {
        
        System.out.println("Ingrese el numero de Filas: ");
        BufferedReader teclado= new BufferedReader(new InputStreamReader(System.in));
        int num1 = Integer.parseInt(teclado.readLine());

        //Ingresa las filas
        
        System.out.println();
        System.out.println("Ingrese el numero de Columnas: ");
        BufferedReader teclado2 = new BufferedReader(new InputStreamReader(System.in));
        int num2 = Integer.parseInt(teclado2.readLine());

        //Ingresa las columnas
        
        int matriz[][] = new int[num1][num2];
        int valor;
        
        //Matriz a pedido, realizada
        
        Primos calculaPrimos = new Primos();     //Para la clase primos
        
        for (int i=0; i < num1;i++){
            for (int j=0; j< num2; j++){
                valor = calculaPrimos.numPrimo();
                matriz[j] = valor;    //Donde valor seria un primo :(
            }
        }
      
}
          
}

class Primos{
    
    public int numPrimo (){
        int a=0;
      
    // La idea aqui es poner un while, donde entre un numero RANDOM
    // Y si ese numero es primo y es mayor a 100 y menos a 1000
   // cambie el valor de a=1;
   // y por consecuencia me pueda entrar a la matriz
        
             Por ejemplo

        while a=0;
        //*if(Esprimo(random))=true{
                      if(random>100 & <1000)
        //*                              a=1;
            

  // Y otra clase llamada Esprimo:

//* class Esprimo (random){
//*                 false/true
        
    }

    
}            



Como ven, ahi estoi atascado... tengo unas ideas en mi cabeza pero no se llevarlas al programa, si me hechan una mano les agradecere mucho

Puse todas mis ideas como comentarios

Lo que planteo, es que entre cualquier numero al azar... que vea si es primo y si cumple el rango, y si es asi todo, pues que lo lleve a la matriz...

Gracias amigos, estare atento


Título: Re: Llenar una matriz con primos al azar! :S
Publicado por: Leyer en 2 Diciembre 2009, 15:28 pm
por cierto nuca crees 2 objetos del lector de teclado utiliza siempre 1 o usa el Scanner ;)  asi te quedaria


Código
  1. import java.io.*;
  2. import java.util.Random;
  3. /**
  4.  *
  5.  * @author Felipe Poblete
  6.  */
  7. public class Main {
  8. public static boolean primo(int numero){
  9. for(int i=2; i<numero; i++) {
  10.     if (numero % i == 0) return false;
  11.    }
  12. return true;
  13.     }
  14.    public static void main(String[] args) throws IOException {
  15.        java.util.Scanner scanner = new   java.util.Scanner(System.in);
  16.        System.out.println("Ingrese el numero de Columnas: ");
  17.        int numRows =scanner.nextInt();
  18.        System.out.println("Ingrese el numero de Filas   : ");
  19.        int numColumn = scanner.nextInt();
  20.        int matriz[][] = new int[numColumn][numRows];
  21.        Random random = new Random();
  22.        for (int i=0; i < matriz.length;i++){
  23.            for (int index=0; index< numRows; index++){
  24.                while(true){
  25.                 int b = random.nextInt(1000);
  26.                 if(b >= 100 && primo(b)){
  27.                 matriz[i][index] = b;
  28.                 break;
  29.                 }else continue;
  30.                }
  31.            }
  32.        }
  33.        for(int index=0;index<matriz.length;index++){
  34.         for(int r=0;r<numRows;r++){
  35.         System.out.println(matriz[index][r]);
  36.         }
  37.        }    
  38.    }      
  39. }

Saludos:


Título: Re: Llenar una matriz con primos al azar! :S
Publicado por: Electoniko- en 2 Diciembre 2009, 17:39 pm
wow lo simplificaste mucho con respecto al mio!!

muchas gracias, eres un capo, ahora lo estudiaré  ;)

como decimos en mi pais, te pasaste loco!!


Título: Re: Llenar una matriz con primos al azar! :S
Publicado por: Leyer en 3 Diciembre 2009, 00:51 am
 :)


Título: Re: Llenar una matriz con primos al azar! :S
Publicado por: baspetro en 10 Mayo 2012, 06:43 am
amigo podrias diseññar este mismo codigo en visual baisc por favor !! :)