Llenar una matriz con primos al azar! :S

Iniciado por Electoniko-, 2 Diciembre 2009, 07:33 AM

0 Miembros y 1 Visitante están viendo este tema.

Electoniko-

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

Leyer

por cierto nuca crees 2 objetos del lector de teclado utiliza siempre 1 o usa el Scanner ;)  asi te quedaria


Código (java) [Seleccionar]
import java.io.*;
import java.util.Random;
/**
*
* @author Felipe Poblete
*/
public class Main {
public static boolean primo(int numero){
for(int i=2; i<numero; i++) {
     if (numero % i == 0) return false;
    }
return true;
     }
    public static void main(String[] args) throws IOException {
        java.util.Scanner scanner = new   java.util.Scanner(System.in);
        System.out.println("Ingrese el numero de Columnas: ");
        int numRows =scanner.nextInt();
        System.out.println("Ingrese el numero de Filas   : ");
        int numColumn = scanner.nextInt();
        int matriz[][] = new int[numColumn][numRows];
        Random random = new Random();
        for (int i=0; i < matriz.length;i++){
            for (int index=0; index< numRows; index++){
                while(true){
                int b = random.nextInt(1000);
                if(b >= 100 && primo(b)){
                matriz[i][index] = b;
                break;
                }else continue;
                }
            }
        }
        for(int index=0;index<matriz.length;index++){
        for(int r=0;r<numRows;r++){
        System.out.println(matriz[index][r]);
        }
        }     
    }     
}


Saludos:

Electoniko-

wow lo simplificaste mucho con respecto al mio!!

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

como decimos en mi pais, te pasaste loco!!

Leyer

#3
 :)

baspetro

amigo podrias diseññar este mismo codigo en visual baisc por favor !! :)