Okay, mein Problem ist weniger, wie herauszufinden, ob eine Nummer ist Prime, weil ich denke, dass ich herausgefunden, aber mehr davon, wie es richtig angezeigt wird.Wie zu bestimmen, ob eine Zahl ist prime
Hier ist mein Code:
public static void main(String[] args) {
// Declare Variables
int randomNumbers = 0;
int sum = 0;
//Loop for number generation and print out numbers
System.out.print("The five random numbers are: ");
for (int i = 0; i <= 4; i++)
{
randomNumbers = (int)(Math.random()*20);
sum += randomNumbers;
if (i == 4) {
System.out.println("and " + randomNumbers + ".");
}
else {
System.out.print(randomNumbers + ", ");
}
}
//Display Sum
System.out.println("\nThe sum of these five numbers is " + sum + ".\n");
//Determine if the sum is prime and display results
for(int p = 2; p < sum; p++) {
if(sum % p == 0)
System.out.println("The sum is not a prime number.");
else
System.out.println("The sum is a prime number.");
break;
}
}
}
Nun mein Problem ist, wenn die Zahl endet so etwas wie 9 zu sein, es wird sagen, dass es eine Primzahl ist, die es nicht ist. Ich denke, das Problem ist, dass die Unterbrechung es nach einer Schleife stoppt, so dass es Variable p nicht erhöht, so testet es nur Division durch 2 (denke ich). Wenn ich jedoch den Unterbrechungspunkt entferne, wird bei jedem Durchlauf "Die Summe ist/ist keine Primzahl" ausgedruckt, bis sie die Schleife verlässt. Ich bin mir nicht sicher, was ich hier machen soll.
Sehr hilfreich, obwohl Sie die Pause verlassen haben; da drinnen und das machte mich fertig, bis ich merkte, dass ich es loswerden musste. Vielen Dank für die Hilfe! – senpaimaster
Die Pause ist da, um die Schleife zu verlassen, wenn sie das erste Mal einen Faktor findet, da sie nicht mehr suchen muss. – Unamanic
Ihre Logik ist korrekt, aber sie ist nicht optimiert. Also iteriere die for-Schleife nur bis zur Quadratwurzel der Zahl und nicht bis zur nächsten Zahl. Und erhöhen Sie die 'for'-Schleife Variable (beginnend mit 3) um 2 statt 1. Ich habe eine Antwort geschrieben, bitte beachten Sie das für weitere Details. –