Help with vectors and prime numbers

0

Leer 10 enteros , store them in an array and determine in what position of the array the highest prime number read is.

        int vector[] = new int[10]; //Declaro, instancio vector
        int enteros = 0; // Variables a utilizar
        int mayor = 0;
        int indice = 0;
        int con = 0;
        for (int i = 0; i < vector.length; i++) { //For que me lee el vector y me asigna el valor acada posicion.
            System.out.println("Ingrese los 10 numeros enteros: " + "Pos " + i);
            enteros = teclado.nextInt();
            vector[i] = enteros;
        }
//        vector[0] = mayor; // Igualo la posicion 0 a la vaariable
        for (int i = 0; i < vector.length; i++) {
            if (enteros % vector[i] == 0) {
                con = con + 1;
            }
            if (con == 2 && vector[i] > mayor) {
                mayor = vector[i];
                indice = i;
            }
            con = 0;
        }
        System.out.println("El numero primo mayor esta en posicion: " + mayor);
    }
    
asked by Santiago Betancur 14.08.2017 в 00:03
source

1 answer

1

I think the problem is that you were wrong between the Value and Index , reodening the code a bit I stay like this:

    int vector[] = new int[10]; //Declaro, instancio vector
    int enteros = 0; // Variables a utilizar
    int mayor = 0;
    int indice = 0;
    int con = 0;


    for (int i = 0; i < vector.length; i++) { //For que me lee el vector y me asigna el valor acada posicion.
        System.out.println("Ingrese los 10 numeros enteros: " + "Pos " + i);
        enteros = teclado.nextInt();
        vector[i] = enteros;
    }


    for (int i = 0; i < vector.length; i++) {
        if (esPrimo(vector[i])) {
            if(vector[i] > mayor){
                mayor = vector[i];
                indice = i; 
            }
        }

    }
    System.out.println("El numero primo mayor esta en posicion: " + indice);

The code of the isPrimo (x) function would be:

public Boolean esPrimo(int n) {
    for (int i = 2; i < n; i++) {
        if (n % i == 0) {
            return false;
        }
    }
    return true;
}

And it works.

    
answered by 14.08.2017 в 00:57