Mostrando entradas con la etiqueta 686. Mostrar todas las entradas
Mostrando entradas con la etiqueta 686. Mostrar todas las entradas

miércoles, 21 de enero de 2015

Solución UVA 686 Goldbach's Conjecture (II)


import java.util.Scanner;

/**
 *
 * @author DAM112
 */
public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        int[] anArray;
        int [] aArray;
        aArray = new int[32678];

        int num, cont, cont1, raiz, cont2 , cont3 , cont4=0, cont5=0;
        boolean primo;
       
        Scanner leer = new Scanner(System.in);
       
       
        do {
           
            num = leer.nextInt();
            if (num != 0) {
                aArray[cont4] = num;
                cont4++;
            }
           
        } while (num != 0);
       
        do {
            cont1=0;
            cont2=0;
            cont3 = 0;
            for (int i = 1; i < aArray[cont5]; i++) {
                primo = true;
                cont = 2;
                raiz = (int) Math.sqrt(i);
                while (primo && (cont <= raiz)) {
                    if (i % cont == 0) {
                        primo = false;
                    } else {
                        ++cont;
                    }
                }
               
                if (primo == true) {
                    cont2 = cont2 + 1;
                }
            }
           
            anArray = new int[cont2];
           
            for (int i = 1; i < aArray[cont5]; i++) {
               
                primo = true;
                cont = 2;
                raiz = (int) Math.sqrt(i);
                while (primo && (cont <= raiz)) {
                    if (i % cont == 0) {
                        primo = false;
                    } else {
                        ++cont;
                    }
                }
               
                if (primo == true) {
                   
                    anArray[cont3] = i;
                    cont3++;
                }
            }
           
            for (int i = 1; i < anArray.length; i++) {
                for (int j = 1; j < anArray.length; j++) {
                    if (anArray[i] + anArray[j] == aArray[cont5]) {
                        if (anArray[i] == anArray[j]) {
                        cont1++;

                    }
                        cont1++;
                       
                    }
                   
                }
               
            }
            System.out.println("" + cont1 / 2);
            cont5++;
        } while (cont5 != cont4);
       
    }
   
}

lunes, 12 de enero de 2015