Buscando los números primos, en Java

  • 4 Respuestas
  • 3072 Vistas

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

Desconectado Yavi

  • *
  • Underc0der
  • Mensajes: 166
  • Actividad:
    0%
  • Reputación 0
  • Es como una pagina redirigiendose a si misma
  • Skype: [email protected]
  • Twitter: @YaviOS64
    • Ver Perfil
    • Email

Buscando los números primos, en Java

  • en: Junio 08, 2015, 07:27:59 pm
Hola, como están?  8)

Últimamente estaba programando en Java y allí estaba yo realizando actividades y cosas por el estilo. Me tope con un algoritmo, pero no me funciono a la perfección, entonces decidí mejorarlo. Aquí esta:

Este algoritmo calcula todos los números primos desde 1 (lo cual es raro, porque el uno no se incluye  :P ) hasta el valor de la variable limite

Código: Java
  1. package DelDia;
  2.  
  3. public class BuscandoAlPrimo {
  4.  
  5.    public static void main(You are not allowed to view links. Register or Login[] args)
  6.    {
  7.       You are not allowed to view links. Register or Login.out.println("INICIO");
  8.       double limite = 100000;
  9.       for (double numero=2.0; numero<=limite; numero++)
  10.       {
  11.          int nPrimos = 1;
  12.          for (int divisor=2; divisor <= (numero); divisor++)
  13.          {
  14.             if ((numero % divisor) == 0)
  15.             {
  16.                nPrimos++;
  17.             }
  18.          }
  19.          // fin de la comprobacion <img src="https://underc0de.org/foro/Smileys/default/tongue.gif" alt="&#58;P" title="Lengua" class="smiley" />
  20.          if (nPrimos==2){
  21.             You are not allowed to view links. Register or Login.out.println("Se encontro:  " + numero);            
  22.          }
  23.       }
  24.       You are not allowed to view links. Register or Login.out.println("FIN <img src="https://underc0de.org/foro/Smileys/default/tongue.gif" alt="&#58;P" title="Lengua" class="smiley" /> ");
  25.  
  26.    }
  27.  
  28. }
  29.  



Bueno, espero que se muy útil ;D 
"Eso es lo bueno de internet. De que sirve internet si chateas con tus vecinos??? para eso te sacas unas sillas al fresco y hablais y jugais a las cartas". @windux

Desconectado [L]ord [R]NA

  • *
  • Underc0der
  • Mensajes: 89
  • Actividad:
    0%
  • Reputación 0
  • H-Sec
  • Skype: lordrna
  • Twitter: lordrna
    • Ver Perfil

Re:Buscando los números primos, en Java

  • en: Junio 09, 2015, 01:59:40 pm
No Funciona. No lo he probado pero se que no funciona... lo probaste? 8)

Desconectado Gus Garsaky

  • *
  • Underc0der
  • Mensajes: 93
  • Actividad:
    0%
  • Reputación -1
  • Skype: gus.garsaky
    • Ver Perfil

Re:Buscando los números primos, en Java

  • en: Junio 09, 2015, 05:37:43 pm
He hecho una solución siguiendo la Criba de Erastóstenes.

Código: Java
  1. package mathio;
  2.  
  3. import java.util.*;
  4. import java.util.concurrent.CopyOnWriteArrayList;
  5.  
  6. /**
  7.  * Math util methods and classes
  8.  * @author Gustavo Garsaky
  9.  * @version 0.0.1
  10. */
  11. public class MathUtils {
  12.    
  13.    public PrimeNumbers primeNumbers() {
  14.       return new PrimeNumbers();
  15.    }
  16.    
  17.    private class PrimeNumbers {
  18.      
  19.       public List<Integer> listPrimesUntil(int limit) {
  20.          List<Integer> naturals = new CopyOnWriteArrayList<>();
  21.          // init naturals
  22.          for(int i=2; i<=limit; i++) {
  23.             naturals.add(i);
  24.          }
  25.          for(You are not allowed to view links. Register or Login current : naturals) {
  26.             discardMultiples(naturals, getMultiplesOf(current, naturals.size()));
  27.             // if discard continue, that means the process should continue
  28.             if(discard(current, naturals.size())) {
  29.                continue;
  30.             } else {
  31.                break;
  32.             }
  33.          }
  34.          List<Integer> primes = naturals;
  35.          return primes;
  36.       }
  37.       /**
  38.        * check the first natural quad. If it's
  39.        * less tan limit, process should continue
  40.        * @param firstNatural first natural number
  41.        */
  42.       private boolean discard(int firstNatural, int limit) {
  43.          double firstNaturalQuad = You are not allowed to view links. Register or Login.pow(new You are not allowed to view links. Register or Login(You are not allowed to view links. Register or Login.valueOf(firstNatural)), 2.0d);
  44.          if(firstNaturalQuad <= limit) {
  45.             return true;
  46.          }
  47.          return false;
  48.       }
  49.       /**
  50.        * Get new list of natural numbers. The new list have all numbers
  51.        * that not in multiples of first natural number
  52.        * @param naturals Naturals numbers
  53.        * @param number Number to get multiples
  54.        */
  55.       private void discardMultiples(List<Integer> naturals, List<Integer> multiples) {
  56.          // check if each multiple is in naturals list.
  57.          // if it isn't, append the multiple to new list
  58.          for(int i=0; i<multiples.size(); i++) {
  59.                    for(int k=0; k<naturals.size(); k++) {
  60.                              if(multiples.get(i) == naturals.get(k)) {
  61.                            naturals.remove(k);
  62.                                   }
  63.                    }    
  64.          }    
  65.        }
  66.    } // end private class
  67.    
  68.    
  69.    /**
  70.     * Get the multiples of a number with some limit
  71.     * @param number Number to get multiples
  72.     * @param limit of multiples to get
  73.     */
  74.    public static List<Integer> getMultiplesOf(int number, int limit) {
  75.       List<Integer> multiples = new ArrayList<>();
  76.       for(int i=number; i<limit; i++ ) {
  77.          if(i < limit) {
  78.             multiples.add(number * i);
  79.          }
  80.       }
  81.       return multiples;
  82.    }
  83.    public static void main(You are not allowed to view links. Register or Login[] args) {
  84.       PrimeNumbers primeNumbers = new MathUtils().primeNumbers();
  85.       List<Integer> primes = primeNumbers.listPrimesUntil(100);
  86.          You are not allowed to view links. Register or Login.out.println("<ul class="bbc_list"><li type="square"> Listando numeros primos...\n");[/li][/list]
  87.       for(You are not allowed to view links. Register or Login prime : primes) {
  88.          You are not allowed to view links. Register or Login.out.println(prime);
  89.       }
  90.    }
  91. }
« Última modificación: Junio 10, 2015, 06:40:53 pm por Gus Garsaky »

Desconectado [L]ord [R]NA

  • *
  • Underc0der
  • Mensajes: 89
  • Actividad:
    0%
  • Reputación 0
  • H-Sec
  • Skype: lordrna
  • Twitter: lordrna
    • Ver Perfil

Re:Buscando los números primos, en Java

  • en: Junio 10, 2015, 01:44:43 am
+1 Gus

Desconectado Yavi

  • *
  • Underc0der
  • Mensajes: 166
  • Actividad:
    0%
  • Reputación 0
  • Es como una pagina redirigiendose a si misma
  • Skype: [email protected]
  • Twitter: @YaviOS64
    • Ver Perfil
    • Email

Re:Buscando los números primos, en Java

  • en: Junio 10, 2015, 05:12:26 pm
Awwwww  :( :-[
"Eso es lo bueno de internet. De que sirve internet si chateas con tus vecinos??? para eso te sacas unas sillas al fresco y hablais y jugais a las cartas". @windux

 

[Video Curso] Iniciacion a Java por DesarrolloWeb y EscuelaIT Mayo 2014

Iniciado por graphixx

Respuestas: 3
Vistas: 3907
Último mensaje Febrero 23, 2015, 10:13:28 am
por Hu3c0
Cheat-Sheet: JAVA - Hoja Guía para que no se me olvide

Iniciado por Denisse

Respuestas: 1
Vistas: 611
Último mensaje Julio 21, 2020, 12:43:49 pm
por DevCode
Como compilar programas Java en la consola de comandos de Windows

Iniciado por tar3kw0rm3d

Respuestas: 2
Vistas: 4234
Último mensaje Junio 04, 2013, 02:55:07 pm
por tar3kw0rm3d
Java Extremo [Video Cursos Completos] [Español] [ISO] 2009

Iniciado por graphixx

Respuestas: 9
Vistas: 9805
Último mensaje Diciembre 04, 2017, 02:36:34 am
por graphixx
[VIDEOTUTORIAL] Java 7 (2011) Creación de aplicaciones de escritorio

Iniciado por graphixx

Respuestas: 3
Vistas: 5771
Último mensaje Diciembre 13, 2017, 12:15:55 pm
por Jean Grey