elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
14 Febrero 2012, 02:10  

+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java (Moderadores: Debci, Leyer)
| | | |-+  Program java numeros primos
0 Usuarios y 2 Visitantes están viendo este tema.
Páginas: 1 [2] Ir Abajo Respuesta Imprimir
Autor Tema: Program java numeros primos  (Leído 38,579 veces)
Hearts

Desconectado Desconectado

Mensajes: 180



Ver Perfil
Re: Program java numeros primos
« Respuesta #15 en: 29 Noviembre 2008, 01:46 »

Con esto te basta:

Código
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;
}

PD:perdon por no tabularlo...

salu2



En línea

43H4FH44H45H4CH49H56H45H
Wiki

Desconectado Desconectado

Mensajes: 483



Ver Perfil
Re: Program java numeros primos
« Respuesta #16 en: 1 Diciembre 2008, 14:54 »

^TiFa^  si no entiendes, no entiendes no tiene caso insistir...

-Ramc-

Lee bien, un entero no puede ser igual a un double (con decimales), la comparación de igualdad solo te sirve cuando sacas la raiz a un numero como 25, lo mejor seria hacer una conversion o un redondeo antes de la comparación.

Criticas el uso de break, pero que uso le das al return en tu bucle?

Solo con for e if:

Código
for(i = 2; num % i != 0 && i < (num-1); i++){};               
if(num % i != 0 || num ==2) System.out.print(num + "es primo \n");

Usandolo:

Código
 public static void main(String[] args) {
 
              int i;              
              for(int num=2; num <= 1000; num++)
              {
              for(i = 2; num % i != 0 && i < (num-1); i++){};              
              if(num % i != 0 || num ==2) System.out.print(num + "es primo \n");                                      
              }
   }

Haber que tal funciona.


En línea


-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
^Tifa^


Desconectado Desconectado

Mensajes: 2.802


Ver Perfil
Re: Program java numeros primos
« Respuesta #17 en: 3 Diciembre 2008, 16:21 »

-Ramc- y yo nos hemos ido de fiesta   ;D    ;D   ;D

Lo siento 43H4FH44H45H4CH49H56H45H  no creo que queramos discutir...

Al menos esa no es mi intencion, y tampoco se me ensena eso   :rolleyes:
 
En línea
-Ramc-


Desconectado Desconectado

Mensajes: 493



Ver Perfil
Re: Program java numeros primos
« Respuesta #18 en: 3 Diciembre 2008, 16:45 »

Lee bien, un entero no puede ser igual a un double (con decimales), la comparación de igualdad solo te sirve cuando sacas la raiz a un numero como 25, lo mejor seria hacer una conversion o un redondeo antes de la comparación.

Código
public class comp {
public static void main(String[] args) {
int i = 5;
double a = 5.0;
boolean x = i == a;
System.out.println(x);
}
}

Eso devuelve true, porque aunque sean tipos de datos distintos, el valor es el mismo, si le pongo 5.1 devuelve false así que mi comparación <= es correcta.

Criticas el uso de break, pero que uso le das al return en tu bucle?
Yo retorno un valor que mi método debe devolver sino de que otra forma, pero, tu usas break y rompes con el curso de tu bloque y hasta donde yo se, no se puede
Código:
break num;
por lo que uso return para devolver.

-Ramc- y yo nos hemos ido de fiesta   ;D    ;D   ;D

Lo siento 43H4FH44H45H4CH49H56H45H  no creo que queramos discutir...

Al menos esa no es mi intencion, y tampoco se me ensena eso   :rolleyes:
 
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:

43H4FH44H45H4CH49H56H45H como dice ^TiFa^ no queremos discutir, pero, estas atacandonos sin razón alguna, desde que comenzo el topic fuiste agresivo en tus post, cuando no tenias la razón.
En línea


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


Desconectado Desconectado

Mensajes: 2.802


Ver Perfil
Re: Program java numeros primos
« Respuesta #19 en: 3 Diciembre 2008, 17:01 »

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.

« Última modificación: 3 Diciembre 2008, 17:09 por ^TiFa^ » En línea
43H4FH44H45H4CH49H56H45H
Wiki

Desconectado Desconectado

Mensajes: 483



Ver Perfil
Re: Program java numeros primos
« Respuesta #20 en: 4 Diciembre 2008, 14:36 »

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.

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.

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.
En línea


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


Desconectado Desconectado

Mensajes: 493



Ver Perfil
Re: Program java numeros primos
« Respuesta #21 en: 4 Diciembre 2008, 17:37 »

Código
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.
En línea


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

Desconectado Desconectado

Mensajes: 483



Ver Perfil
Re: Program java numeros primos
« Respuesta #22 en: 5 Diciembre 2008, 13:43 »

Código
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   >:(

Código
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;
}
En línea


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


Desconectado Desconectado

Mensajes: 493



Ver Perfil
Re: Program java numeros primos
« Respuesta #23 en: 5 Diciembre 2008, 16:46 »

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.
En línea


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


Desconectado Desconectado

Mensajes: 455


rie con demencia


Ver Perfil
Re: Program java numeros primos
« Respuesta #24 en: 5 Diciembre 2008, 20:35 »

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:
En línea

Night_Vision

Desconectado Desconectado

Mensajes: 1



Ver Perfil
Re: Program java numeros primos
« Respuesta #25 en: 17 Marzo 2010, 01:35 »

Buenas

Primer Aporte:

Código:
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
« Última modificación: 17 Marzo 2010, 01:48 por Night_Vision » En línea
Blitzkrieg'


Desconectado Desconectado

Mensajes: 546


print('Hi there')


Ver Perfil WWW
Re: Program java numeros primos
« Respuesta #26 en: 17 Marzo 2010, 01:48 »

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

Menos pelea mas aporte...
En línea



eriex

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Re: Program java numeros primos
« Respuesta #27 en: 18 Agosto 2010, 14:28 »

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);

            }
        }
   
    }
}

En línea
Debci
Moderador
***
Desconectado Desconectado

Mensajes: 1.940


Actualizate o muere!


Ver Perfil WWW
Re: Program java numeros primos
« Respuesta #28 en: 18 Agosto 2010, 15:36 »

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
En línea

Páginas: 1 [2] Ir Arriba Respuesta Imprimir 

Ir a:  
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines