Moin Leute,
ich bin gerade noch in der Übung die Rekursion zu "lernen" und mache deshalb alte Übungsaufgaben vom Prof., wo wir die Iteration angewendet haben, nur versuche ich das Problem mittels Rekursion zu lösen. Beim Primzahlentester war meine Idee, dass die Methode testet, ob die abgegebene Zahl % x ungleich null ergibt, ist dies der Fall soll es x um eins erhöht werden, bis x == i ist, sollte ein Modulo schon mittendrin auftreten, soll x auf 2 zurückgesetzt werden und die Grenze (i) um eins verringert werden.
import java.util.Scanner;
public class Primzahlen {
public static void main(String[] args) {
Scanner sc = new Scanner (System.in);
int i, x=2;
System.out.print("Bis zu welcher Zahl soll geprueft werden? : ");
i = sc.nextInt();
sc.close();
Primzahlentester (i,x);
}
public static boolean Primzahlentester (int b, int c) {
if(b == 2) {
System.out.print(b);
return true;
}
else if (b != 2 && b == c) {
System.out.println(b);
return Primzahlentester(b--, c=2);
}
else if (b%c != 0) {
return Primzahlentester (b, c++);
}
else {
return Primzahlentester(b--, c=2);
}
}
}
ich bin gerade noch in der Übung die Rekursion zu "lernen" und mache deshalb alte Übungsaufgaben vom Prof., wo wir die Iteration angewendet haben, nur versuche ich das Problem mittels Rekursion zu lösen. Beim Primzahlentester war meine Idee, dass die Methode testet, ob die abgegebene Zahl % x ungleich null ergibt, ist dies der Fall soll es x um eins erhöht werden, bis x == i ist, sollte ein Modulo schon mittendrin auftreten, soll x auf 2 zurückgesetzt werden und die Grenze (i) um eins verringert werden.
import java.util.Scanner;
public class Primzahlen {
public static void main(String[] args) {
Scanner sc = new Scanner (System.in);
int i, x=2;
System.out.print("Bis zu welcher Zahl soll geprueft werden? : ");
i = sc.nextInt();
sc.close();
Primzahlentester (i,x);
}
public static boolean Primzahlentester (int b, int c) {
if(b == 2) {
System.out.print(b);
return true;
}
else if (b != 2 && b == c) {
System.out.println(b);
return Primzahlentester(b--, c=2);
}
else if (b%c != 0) {
return Primzahlentester (b, c++);
}
else {
return Primzahlentester(b--, c=2);
}
}
}