@ hl2.exe da ist ein fehler in deinem algorythmus..
der rest bei modulo ist immer größer 0 bei dir.. und so bald die variable isPrim = false gesetzt hast in deiner if anweisung wie sie nie mehr true gesetzt..
hier meine version:
Code:
public static boolean isPrim(int p)
{
if (p % 2 == 0) return false; //wenn 2 teiler von p ist p nicht prim
int i = (int) Math.sqrt(p); // es genögt nach teilern kleiner wurzel p zu suchen
if (i % 2 == 0) i--; // es genügt nur ungerade teiler zu prüfen da p selbst ungerade ist
while(i>2)
{
if(p % i == 0) return false;
i -=2; //wie gesagt nur ungerade zahlen, deshalb immer -2
}
return true;
}