Frage

würde Ich mag alle Primzahlen aus einem Array zum Ausdrucken mit Methode. Ich kann es mit einem int aber nicht wissen, wie bestimmte Zahlen zurückzukehren, von Array. Vielen Dank für die Hilfe!

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;

}

Dank euch beiden. Scheint, wie seine gelöst:

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;
        }
    }
War es hilfreich?

Lösung

Ich würde vorschlagen, dass Sie diese getrennt in zwei Methoden:

  • Eine Methode, um zu bestimmen, ob eine einzelne Zahl prim ist
  • Ein Verfahren iterieren durch eine Anordnung, rufen Sie das erste Verfahren mit jeder Zahl und die Werte ausdrucken, für das die Methode true zurück.

Dass abscheidet die beiden Anliegen ordentlich. Wenn Sie auf genau feststecken, wie dies zu tun, geben Sie bitte Einzelheiten von denen dir gebissen schwer zu finden. (Ich gehe davon aus diesen Hausaufgaben sind, weshalb ich nicht nur den Code enthalten.)

Andere Tipps

Angenommen, Sie haben:

  • Ein Array von ganzen Zahlen, wobei einige prime sein und einige sind nicht prim.
  • Eine Funktion zum Prüfen, ob eine dieser Zahlen ist eine Primzahl.

iterate einfach über das Feld, und für jede Nummer:

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

Sie wahrscheinlich nicht wollen, um zu versuchen und zu tun mehrere ints auf einmal, einer nach dem anderen sollte Code viel einfacher sein.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top