Problema con array

di il
6 risposte

Problema con array

Scrivere una classe con il metodo main con un array che contiene i numeri da 2 a
100: trovare e stampare tutti i numeri primi
questa è la traccia

io ho risolto così
class ArrayPrimi {
public static void main(String args[]) {
int sample[] = new int[100];
int i;

for(i = 0; i < 100; i = i+1)
sample = i;

for(int j = 2; j<i; j++){
if (i % j != 0){

System.out.print(i+ " ");

}
}

}
}
solo che non mi stampa i numeri primi ma 100 volte il numero 100 e non capisco il motivo. Chi da una mano

6 Risposte

  • Re: Problema con array

    toto_83 ha scritto:


        for(int j = 2; j<i; j++){
    		if (i % j != 0){
    A parte che in questo secondo for non stai più usando l'array.
    Comunque il concetto è che dato un numero N (es. 23) devi "provare" tutte le divisioni (con il modulo %) con valori da 2 fino a N/2.
    23 % 2 dà 0?
    23 % 3 dà 0?
    23 % 4 dà 0?
    ....
    23 % 11 dà 0?

    Al primo che dà 0, allora N non è primo.

    Quindi se devi fare questo per più numeri, chiaramente ci sarà un doppio ciclo annidato.

    Consiglio: fai un metodo a parte:
    boolean isPrimo(int n)
  • Re: Problema con array

    Ah ok grazie. Per non uscire dall'Array come dovrei fare?
  • Re: Problema con array

    toto_83 ha scritto:


    Per non uscire dall'Array come dovrei fare?
    "non uscire dall'array" in che senso??
  • Re: Problema con array

    Con il secondo for non sto usando più l'array creato giusto? Quindi sono uscito dall'array questo intendo.
    Ne ho svolto pure di più difficili ma questo mi sta facendo penare
  • Re: Problema con array

    toto_83 ha scritto:


    Quindi sono uscito dall'array questo intendo.
    Ma non vuol dire essere "uscito" dall'array!

    Nel primo for hai popolato l'array:
        for(i = 0; i < 100; i = i+1) 
          sample[i] = i; 
    Hai usato la variabile sample per mettere nell'array i valori { 0, 1, 2 ...... 99 }.

    Bene, ora dovresti usare di nuovo l'array (si presume). Magari fai un altro ciclo che parte da 2 (0 e 1 non ha senso testarli per vedere se "primi"):
    for (int i = 2; i < sample.length; i++) {
        int n = sample[i];
        // verifica se n è "primo" ......
    }
  • Re: Problema con array

    Apposto ho risolto. Grazie mille
Devi accedere o registrarti per scrivere nel forum
6 risposte