okay...
Der Index muss bei 2 starten...denn 1%n ist immer ungleich null (ok, außer bei 1). Weshalb zu anfang gleich 1 als Primzahl erkannt wird, was ja nicht stimmt. Also hat er bei dir dann jede Zahl durch 1 geteilt und demnach war keine folgende Zahl mehr eine Primzahl
. Hinzu kommt, dass du vergessen hast, den indexzwei zurückzusetzen.
Lediglich die zwei wird nicht als Primzahl erkannt (da ja 2/2 teilbar ist und das Script deshalb die 2 als keine Primzahl vermerkt). Vielleicht sollte man explizit eine Abfrage für die 2 einbauen oder so
function primzahlen ()
{
var wertebereich = prompt("Bis wieviel sollen die Primzahlen ausgegeben werden?"
var primzahlen = new Array(2);
var index=2;
var indexzwei=0;
primzahl=1;
while(index<=wertebereich)
{
while(indexzwei<primzahlen.length)
{
if((index%primzahlen[indexzwei])==0 && index!=primzahlen[indexzwei])
{
primzahl=0;
}
indexzwei=indexzwei+1;
}
if(primzahl==1)
{
var lalilu= primzahlen.push(index);
document.write(index+", "
}
primzahl=1;
indexzwei = 0;
index = index+1;
}
}
edit: falscher kasten ^^
edit2: hatte noch das alert drin . Außerdem keine Trennung der Zahlen durch Komma ^^
edit... : If-Abfrage in Zeile 14 erweitert, weshalb jetzt auch die 2 als prim erkannt wird. (yeah...10mal edit. neuer Rekord ^^)