Foro de elhacker.net

Programación => Java => Mensaje iniciado por: juancaa en 10 Noviembre 2012, 22:05 pm



Título: [Source] Algoritmo Conjetura de Goldbach
Publicado por: juancaa en 10 Noviembre 2012, 22:05 pm
Pues bien, aqui les traigo un simple codigo que permite hallar todas las combinaciones posibles de 2 numeros primos que suman un numero par mayor que 2 (Conjetura de Goldbach).

Código
  1.  
  2. public class Goldbach {
  3.  
  4.    public static Boolean isPrime (int n) { //comprueba si 'n' es primo
  5.        int i=2;        
  6.        while (n%i!=0) i++;                    
  7.        if (i==n) return true;
  8.        else return false;
  9.    }
  10.  
  11.    public static void main(String[] args) {                
  12.        for (int i=2; i<50; i++) { // Buscamos combinaciones entre 2*2=4 y 50*2=100
  13.            for (int j=0; j+1<i; j++) { // Nota: j+1 para evitar el caso j=1 (1 no es primo)              
  14.                int p=i+j, q=i-j; // p & q primos a la misma distancia de 2*i por lo que su suma es 2*i
  15.                if ((isPrime(p)) && (isPrime(q)))            
  16.                    System.out.println("For number: "+2*i+" = "+p+" + "+q);                
  17.            }            
  18.            System.out.println("Number: "+2*i+" | Combos: "+nCombos);
  19.        }        
  20.    }
  21. }
  22.  

Ejemplo de salida :
Código:
For number: 4 = 2 + 2
For number: 6 = 3 + 3
For number: 8 = 5 + 3
For number: 10 = 5 + 5
For number: 10 = 7 + 3
For number: 12 = 7 + 5
For number: 14 = 7 + 7
For number: 14 = 11 + 3
For number: 16 = 11 + 5
For number: 16 = 13 + 3
For number: 18 = 11 + 7
For number: 18 = 13 + 5
For number: 20 = 13 + 7
For number: 20 = 17 + 3

A ver si con esto alguien se anima a demostrar la conjetura  :xD
Un saludo!