Ich versuche, ein Programm zu schreiben, das prüft, ob es prime oder nicht ist, und eine Zeichenfolge zurückgibt, ja wenn true und nein wenn false. Ich versuche, es innerhalb meiner Hauptmethode zu tun, die nur while-Schleifen verwendet, aber ich habe Probleme, es auszuführen. Ich habe es innerhalb der void-Methode gemacht, und ich habe die Methode in meiner Hauptmethode aufgerufen, aber das ist nicht das, was ich will.Primzahlen mit While-Schleifen
Ich möchte, dass es innerhalb meiner Hauptmethode ist und einen String Yes zurückgibt, wenn es prim ist und ein String nein, wenn es nicht prim ist. Irgendwelche Ideen bitte? Sehen Sie sich meinen Code in der folgenden Methode an. Irgendwelche Ideen, wie man es in meine Hauptmethode umwandelt, um Ja oder Nein als Strings zurückzugeben?
import java.util.Scanner;
public class PrimeNumbers {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.print("Enter a number: ");
int number = in .nextInt();
isPrime(number);
}
public static void isPrime(int n) {
if (n % 2 == 0) {
System.out.println("It is not a prime number");
return;
} else {
int i = 3;
while (i <= Math.sqrt(n)) {
if ((n % i) == 0) {
System.out.println("It is not a prime number");
return;
}
i = i + 2;
}
}
System.out.println("It is a prime number");
return;
}
}
Wie wäre es, den Körper zu kopieren von 'isPrime()' in 'main()' wo 'isPrime (number);' ist jetzt? (Ändern Sie natürlich 'n' in' number' (oder umgekehrt).) –
Sie können String nicht aus void-Methoden zurückgeben. – Naveed
Ihre isPrime-Methode ist falsch. Jede ganze Zahl kleiner oder gleich 1 ist nicht prim. 2 und 3 sind Primzahlen. 4 ist nicht prim. Jede Ganzzahl 5 oder größer kann auf Prime getestet werden, wie Sie es in Ihrer while-Schleife tun. –