0 votes

impression des nombres premiers à partir d'un tableau

Je voudrais imprimer tous les nombres premiers d'un tableau avec la méthode. Je peux le faire avec un int mais je ne sais pas comment retourner certains nombres depuis un tableau. Merci pour votre 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 à vous deux. Il semble que le problème soit 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;
        }
    }

2voto

Jon Skeet Points 692016

Je vous suggère de séparer cette méthode en deux :

  • Une méthode pour déterminer si un nombre unique est premier
  • Une méthode pour itérer dans un tableau, appeler la première méthode avec chaque nombre, et imprimer les valeurs pour lesquelles la méthode renvoie vrai.

Cela sépare les deux préoccupations de façon nette. Si vous êtes bloqué sur la façon exacte de faire cela, veuillez donner des détails sur la partie que vous trouvez difficile (je suppose que c'est un devoir, c'est pourquoi je n'ai pas simplement inclus le code).

0voto

Adam Luchjenbroers Points 2404

En supposant que vous l'ayez fait :

  • Un tableau d'entiers, dont certains sont premiers et d'autres ne le sont pas.
  • Une fonction pour tester si l'un de ces nombres est premier.

Il suffit d'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 plusieurs ints à la fois, un à la fois devrait être beaucoup plus simple à coder.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X