Question

Je voudrais imprimer tous les nombres premiers d'un tableau avec la méthode. Je peux le faire avec un int mais ne savent pas comment retourner certains nombres de tableau. Merci pour l'aide!

public static boolean isPrime(int [] tab) {
        boolean prime = true;
        for (int i = 3; i <= Math.sqrt(tab[i]); i += 2)
            if (tab[i] % i == 0) {
                prime = false;
                break;
            }
        for(int i=0; i<tab.length; i++)
        if (( tab[i]%2 !=0 && prime && tab[i] > 2) || tab[i] == 2) {
            return true;
                } else {
            return false;
        }
        //return prime;

}

Merci tous les deux. On dirait que son résolu:

public static void isPrime(int[] tab) {
        for (int i = 0; i < tab.length; i++) {
            if (isPrimeNum(tab[i])) {
                System.out.println(tab[i]);
            }
        }


    }

    public static boolean isPrimeNum(int n) {
        boolean prime = true;
        for (long i = 3; i <= Math.sqrt(n); i += 2) {
            if (n % i == 0) {
                prime = false;
                break;
            }
        }
        if ((n % 2 != 0 && prime && n > 2) || n == 2) {
            return true;

        } else {
            return false;
        }
    }
Était-ce utile?

La solution

Je vous suggère de séparer cela en deux méthodes:

  • Une méthode pour déterminer si un seul numéro est premier
  • Une méthode pour itérer à travers un réseau, appelez la première méthode à chaque numéro, et imprimer les valeurs pour lesquelles la méthode renvoie true.

qui sépare les deux préoccupations d'une manière ordonnée. Si vous êtes coincé sur exactement comment cela, s'il vous plaît donner des détails dont vous trouverez peu dur. (Je suppose que c'est des devoirs, ce qui est pourquoi je ne viens pas inclus le code.)

Autres conseils

En supposant que vous avez:

  • Un tableau d'entiers, certains étant premier et certains étant pas premier.
  • Une fonction pour tester si l'un de ces numéros est de premier choix.

Il suffit de itérer sur le tableau, et pour chaque numéro:

if (isPrime(n)) {
    system.out.println(n);
}

Vous ne voulez probablement pas essayer de faire ints plusieurs à la fois, un à la fois devrait être beaucoup plus simple à coder.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top