Program java numeros primos

Iniciado por painkillerpucela, 14 Noviembre 2008, 22:44 PM

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

43H4FH44H45H4CH49H56H45H

Cita de: ^TiFa^ en  3 Diciembre 2008, 17:01 PM
Un programador eficiente, siempre conoce la forma o via de obviar las sentencias debiles que producen inestabilidad al codigo tipo los break, goto, continue, etc....

Era entendible utilizar estas sentencias cuando existian  ENIAC, BRLESC, Edvac y las tarjetas perforadas.. vamos, ahi era obligatorio, pero a estas alturas con estos modelos de PC y estos SO con capacidad de hacer variadas cosas a la vez, y estos lenguajes de alto nivel orientado a objetos como Java en este caso, que se supone que manejan y limpian la carga de memoria, las excepciones, y un sinumero de cosas.... creo que para un programador eficiente (Que es lo que tu quieres dejar notado aqui sobre tu persona 43H4FH44H45H4CH49H56H45H) EL uso de break es inadmisible...) No es valido para la optimizacion, ni lectura limpia del codigo fuente en si. Solo eso.

Me pregunto porque no revisas las cosas que escribes antes de publicarlas, es molestoso estar corrigiendo de cada comentario tuyo por lo menos 1 error.

Cita de: -Ramc- en  3 Diciembre 2008, 16:45 PM
Yo retorno un valor que mi método debe devolver sino de que otra forma

uso return para devolver.

Si le añadimos System.out.print(i + " "); a esPrimo cualquiera puede darse cuenta que ademas rompe las iteraciones del mismo modo que se haria con break o similar, por tanto no conoces el comportamiento de return, no conoces como funciona tu propio algoritmo? ya parece un copy - paste. Pero no tomemos conclusiones apresuradas, pues de seguro si es tuyo no tendrás problema en corregir semejante error que tanto criticas y si no puedes colocas al verdadero autor y asunto olvidado.

Si no tienes la capacidad de entender algo tan simple investiga que tal es considerado el uso de break, continue, return y otros dentro de bucles.
Y si todavia no puedes asimilar eso con gusto saco los titeres para mostrartelo.

Cita de: -Ramc- en  3 Diciembre 2008, 16:45 PM
Lo vez ^TiFa^ solo se ha dedicado a criticar sin tan siquiera probar los códigos y comprobar que lo que el dice es cierto.   :laugh:

Claro  :rolleyes: vamos a aclarar este punto y con gusto continuamos.

-R IP
:0100
-A 100 
2826:0100 MOV AH,09
2826:0102 MOV DX,109
2826:0105 INT 21
2826:0105 MOV AH,08
2826:0105 INT 21
2826:0107 INT 20
2826:0109 DB 'MI NICK ES CODELIVE.$' 
2826:0127 
-R BX
:0000
-R CX
:20
-N CODELIVE.COM
-W

-Ramc-

Código (java) [Seleccionar]
public static boolean esPrimo(int numero) {
            double raiz = Math.sqrt(numero);
            boolean is = true;
            for(int i = 2; i <= raiz && is; i++) {
                     if(numero % i == 0)
                                is = false;
            }
            return is;
}

Ok te gusta mas así o ¿como lo deseas 43H4FH44H45H4CH49H56H45H?
También imprime los números primos :P

Si no tienes mas que aportar a este hilo, dejemosla hasta aquí, no quiero discutir con vos.

PD: El código claro que es mio, sino ni me hubiera molestado en contestarte.

Shhh... be vewy, vewy, quiet!  I'm hunting wabbits...
LA PANDILLA MAS GRANDE DE MI CIUDAD, SE LLAMA POLICIA NACIONAL.

43H4FH44H45H4CH49H56H45H

Cita de: -Ramc- en  4 Diciembre 2008, 17:37 PM
Código (java) [Seleccionar]
public static boolean esPrimo(int numero) {
            double raiz = Math.sqrt(numero);
            boolean is = true;
            for(int i = 2; i <= raiz && is; i++) {
                     if(numero % i == 0)
                                is = false;
            }
            return is;
}


PD: El código claro que es mio, sino ni me hubiera molestado en contestarte.

Lo justo es darle los créditos al autor del código en este caso Hearts   >:(

Cita de: Hearts en 29 Noviembre 2008, 01:46 AM
Código (java) [Seleccionar]
public static boolean buscaPrimo(long n){
if (n<=0)
throw new IllegalArgumentException("Número no natural");
int i=2;
boolean primo=true;
while (i<=n/2 && primo){
if (n%i==0)
primo=false;
i=i+1;
}
return primo;
}


-R IP
:0100
-A 100 
2826:0100 MOV AH,09
2826:0102 MOV DX,109
2826:0105 INT 21
2826:0105 MOV AH,08
2826:0105 INT 21
2826:0107 INT 20
2826:0109 DB 'MI NICK ES CODELIVE.$' 
2826:0127 
-R BX
:0000
-R CX
:20
-N CODELIVE.COM
-W

-Ramc-

Se hace todo lo posible por no responder este tipo de mensajes, pero, al parecer tu arrogancia lo hace imposible, desde que posteaste tu super-código, no haz hecho mas que criticar el de los demas, si piensas que no hice el código, es tu problema, pero, mira bien que no son iguales; el tema ya quedo resuelto y el usuario ya tiene su código desde hace días supongo así que creo que deberian cerrar el tema.

Shhh... be vewy, vewy, quiet!  I'm hunting wabbits...
LA PANDILLA MAS GRANDE DE MI CIUDAD, SE LLAMA POLICIA NACIONAL.

juancho77

Todo para resolver una funcion que muestre numeros primos. No me quiero imaginar cuando haya que organizar una base de datos dsitribuida  :laugh:


PD: el break es totalmente legal. Que lo uses o no no tiene absolutamente nada que ver con la eficiencia y la naturalidad del codigo. Como harias un switch sin break? Me parece que le erraste en el concepto. Que tiene que ver que exista la POO o el SO que sea? un if es un if aca y en Cobol.  :rolleyes:

Night_Vision

#25
Buenas

Primer Aporte:

import javax.swing.JOptionPane; // Paquete JDK


public class Main {

   public static void main(String[] args)
   {
       int cont=0;
       String numerosPrimos="Los numeros Primos son: \n";
       int rangoMenor=0;
       int rangoMayor=0;


       rangoMenor = Integer.parseInt(JOptionPane.showInputDialog("Digite el Rango \n De: "));
       rangoMayor = (Integer.parseInt(JOptionPane.showInputDialog(" Hasta: "))+1);


       if (rangoMenor <= 2)
       {
            numerosPrimos += 2 +"\n";
           rangoMenor = 3;
       }

       for(int i=rangoMenor; i<rangoMayor; i++)
       {
           for(int x = 2; x < i; x++)
           {
              if(i % x == 0)
              {
                   cont = 1;
                   break;
              }
           }
           if(cont == 0)
           {
               numerosPrimos += i +"\n";
           }
           cont =0;  
       }
       JOptionPane.showMessageDialog(null, numerosPrimos);
       System.exit(0);
   }
}


Espero que funcione para alguien por ahi!  ;D

Blitzkrieg'

[broma] Tifa es la semilla de la discordia  :xD [\broma]

Menos pelea mas aporte...



eriex

Dado que es un ejercicio común y parace que algunos habeis generado un codigo enorme, os envio un codigo que calcula los numeros primos de 1 a 100. Obviamente si lo que quereis es algo mas al estilo que dado un numero calcule todos los primos hasta el, basta con modificar un par de lineas.

public class SonPrimos {
    public static void main(String[] args){
        System.out.println("1"); // El 1 es primo por lo que lo ponemos y punto
        for(int i = 1; i <= 100; i++){
            int contador = 0; /* Inicializamos un contador a cero para cada
                                numero que se comprueba*/
            for(int j = 1; j <=i; j++){
              int modulo = i % j;
              if(modulo == 0)
                  contador = contador + 1;
              if((i == j)&&(contador == 2))/*Esto es asi porque un numero es
                   primo si es divisible por 1 o por el mismo, es decir, si es
                   primo el contador sera como máximo 2*/
                  System.out.println(i);

            }
        }
   
    }
}


Debci

Cita de: eriex en 18 Agosto 2010, 14:28 PM
Dado que es un ejercicio común y parace que algunos habeis generado un codigo enorme, os envio un codigo que calcula los numeros primos de 1 a 100. Obviamente si lo que quereis es algo mas al estilo que dado un numero calcule todos los primos hasta el, basta con modificar un par de lineas.

public class SonPrimos {
    public static void main(String[] args){
        System.out.println("1"); // El 1 es primo por lo que lo ponemos y punto
        for(int i = 1; i <= 100; i++){
            int contador = 0; /* Inicializamos un contador a cero para cada
                                numero que se comprueba*/
            for(int j = 1; j <=i; j++){
              int modulo = i % j;
              if(modulo == 0)
                  contador = contador + 1;
              if((i == j)&&(contador == 2))/*Esto es asi porque un numero es
                   primo si es divisible por 1 o por el mismo, es decir, si es
                   primo el contador sera como máximo 2*/
                  System.out.println(i);

            }
        }
   
    }
}


Se agradece pero deberias re-considerar crear un nuevo tema antes de revivir nuevos posts.

Saludos