Primzahl rekursiv mit einem Wert ohne i, wie?

Diskutiere Primzahl rekursiv mit einem Wert ohne i, wie? im Java Basics - Anfänger-Themen Forum; Ich versuche Primzahlen rekursiv ohne den zusätzlichen Teiler i zu verwenden, wie mache ich das? Also so dass ich nicht Primzahlen(n,2) eingeben...

  1. O2016
    O2016 Mitglied
    Ich versuche Primzahlen rekursiv ohne den zusätzlichen Teiler i zu verwenden, wie mache ich das?
    Also so dass ich nicht Primzahlen(n,2) eingeben muss, sondern nur Primzahlen(n) aufrufe.

    Code (Java):

    public static int Primzahlen(int n, int i)
       {
           
           if(n%i !=0 || n==i)
           {
               if(i<n)
               {
                   
                   return Primzahlen(n,++i);
               }
               System.out.print("eine Primzahl ist: ");
               return n;
           }
           else
           {
               System.out.print("keine Primzahl ist: ");
               
               
           }
           return n;
       }










     
     
  2. Vielleicht hilft dir dieses Buch hier weiter.
  3. httpdigest
    httpdigest Bekanntes Mitglied
    Die rekursive Methode muss immer einen Akkumulator-Parameter haben. Du kannst aber natürlich die rekursive Methode durch eine andere Methode kapseln:
    Code (Java):
    public class Primzahl {
      private static boolean istPrimzahl(int n, int i) {
        return i >= n || n % i != 0 && istPrimzahl(n, i + 1);
      }
      public static boolean istPrimzahl(int n) {
        return istPrimzahl(n, 2);
      }
      public static void main(String[] args) {
        System.out.println(istPrimzahl(6));
      }
    }
    Plus: Ich habe mal deinen Code etwas vereinfacht und die unmöglichen System.out.println()s rausgenommen.
     
    O2016 gefällt das.
  4. O2016
    O2016 Mitglied
    Danke, ich vermute mal du meinst mit einem Akkumulator Parameter einen Parameter der rauf bzw. runterzählt oder? also hier das i
     
  5. O2016
    O2016 Mitglied
    Dein Zitat:
    "Die rekursive Methode muss immer einen Akkumulator-Parameter haben."

    Das bezieht sich nur auf diese rekursive Methode nicht auf alle oder?
     
  6. O2016
    O2016 Mitglied
    Zitat:
    Du kannst aber natürlich die rekursive Methode durch eine andere Methode kapseln:

    Damit meinst du sowas oder?
    public static int Primzahl(int n)
    {
    return Primzahlen(n,2); // Diese funktion wird dann aufgerufen (also die obige)
    }
     
  7. httpdigest
    httpdigest Bekanntes Mitglied
    Ja, genau. Die rekursive Methode in diesem Fall.

    Ja, wie ichs ja im Code gezeigt habe. Allerdings solltest du dir mal Gedanken darüber machen, was deine Methode eigentlich bestimmen soll und was sie genau als Rückgabewert hat. Dass die Methode auf stdout ausgibt, dass eine Zahl eine Primzahl ist oder nicht, ist wirklich nicht hilfreich, wenn du die Methode in jedem beliebigen Kontext einsetzen willst.

    Stell dir mal vor, dass eine andere Methode ermitteln möchte, ob eine Zahl eine Primzahl ist, und eventuell basierend auf dieser Information etwas tun will. Hierzu ist deine Methode gänzlich ungeeignet.
     
  8. O2016
    O2016 Mitglied
    Da hast du recht, dann sollte ich wohl eher mit boolean arbeiten.

    Vielen Dank
     
  9. Wenn du Java lernen möchtest, empfehlen wir dir dieses Buch hier
Passende Stellenanzeigen aus deiner Region:





Die Seite wird geladen...

Primzahl rekursiv mit einem Wert ohne i, wie? - Ähnliche Themen

Primzahltest rekursiv
Primzahltest rekursiv im Forum Allgemeine Java-Themen
Primzahlen und Rekursive Liste 2
Primzahlen und Rekursive Liste 2 im Forum Hausaufgaben
Primzahlen und Rekursive Liste
Primzahlen und Rekursive Liste im Forum Java Basics - Anfänger-Themen
Primzahltest Rekursiv
Primzahltest Rekursiv im Forum Hausaufgaben
Primzahl Methode
Primzahl Methode im Forum Java Basics - Anfänger-Themen
Thema: Primzahl rekursiv mit einem Wert ohne i, wie?