Nabend ich kann den Fehler in meinem Code nicht finden. Wollte das wenn ich meine Methode durchlaufen lasse, sie mir ein True gibt wenn es eine Primzahl ist und ein False wenn es keine ist.Bei 17 sagt er mir jedoch False, also es sei keine Primzahl. Kann sein das ich es zu kompliziert gemacht habe und es einfacher geht ich würde doch trotzdem gerne meinen Denkfehler wissen.
Java:
public class primzahlen
{
public static void main(String[] args)
{
}
0public static boolean primzahlentester(int x)
{boolean a = true;
int p = 0;
if(x==1||x==2||x==4||x==6||x==8||x==9){ a=false; }
else if(x==3||x==5||x==7){a=true;}
else if(x>9)
{for(int i = 2; i<=9; i++)
{ int f = x%i; //teilt die Zahlen
int h = primzahlen.Kommazahlenprüfer(f); //Es wird geprüft ob die Zahl eine Kommazahl ist. JA = 1 Nein = 0
p = p + h; // Wenn es eine Kommazahl ist wird ein Zähler auf p addiert
}
if(p==8){a=true;} //Ist in allen acht Durchläufen eine Kommazahl gewesen, handelt es sich um eine Primzahl
else a = false; //Ansonsten nicht
}
return a; // Gibt wieder ob es eine Primzahl ist
}
public static int Kommazahlenprüfer(double zahl)
{ if( (zahl - (int)zahl) == 0) // zieht den double wert vom int wert ab
return 0; //Beim Ergebnis 0 gibt es 0 wieder
else
return 1; //Ansonsten 1
}
}
Zuletzt bearbeitet von einem Moderator: