Zunächst benötigst Du eine Funktion, die Fakultäten berechnen kann:
static int faculty(int n) {
return n == 1 || n == 0 ? 1 : n * faculty(n - 1);
}
Ferner musst Du eine Funktion bereitstellen, die prüfen kann, ob eine Zahl \(p\) prim ist.
public static boolean is_prime(final int to_check) {
final String regex = "(..+?)\\1+|.?";
return !new String(new char[to_check]).matches(regex);
}
In einer While-Schleife testest Du nun, ob für einen gegebenen Wert \(x\) (repräsentiert durch die Variable int counter
) die Formel \(x! \cdot(x+1)! -1\) eine Primzahl liefert. Falls ja, gibst Du sie aus.
public class Main {
static int faculty(int n) {
return n == 1 || n == 0 ? 1 : n * faculty(n - 1);
}
public static boolean is_prime(final int to_check) {
final String regex = "(..+?)\\1+|.?";
return !new String(new char[to_check]).matches(regex);
}
public static void main(final String... args) {
int counter = 0;
int to_check = 0;
while (true) {
to_check = faculty(counter) * faculty(counter + 1) - 1;
if (is_prime(to_check)) {
System.out.printf("n=%d, value=%d\n",counter,to_check);
}
counter++;
}
}
}