Generieren müssen prime zahlen in JavaScript
Ich Schreibe ein JavaScript zu generieren, die Primzahlen von 2 bis 100. Aber Es funktioniert nicht und kann nicht heraus.
wirst du mir helfen bitte?
var array = new Array(100);
for (var i=2 ; i<=array.length-1; i++) {
if((i%2===0) || (i%3===0))
continue;
document.writeln(i+",");
}
Ich veränderte meine Antwort, aber jetzt ist es nicht druckt 2 & 3; wie kann ich 2 & 3...
Ergebnis :
5, 7, 11, 13, 17, 19, 23, 25, 29, 31, 35, 37, 41, 43, 47, 49, 53, 55, 59, 61, 65, 67, 71, 73, 77, 79, 83, 85, 89, 91, 95, 97
Bitte eine bessere Beschreibung als "es funktioniert nicht". Was erwartest du, was der code tun und was tut es eigentlich?
1) Dein code prüft nur, um zu sehen, wenn die Zahl ist teilbar durch 2 oder 3 ist, 2) den Wert false zurück, nach der ersten Zahl, die nicht 'prime' gefunden. 3) Sie nie hinzufügen, neue Primzahlen zu
warum "i++", statt "i+=2", sind auch zahlen, die jemals Primzahl? Sie können auch nur brauchen, untersuchen der Vergangenheit nur die Hälfte der Anzahl Ihrer Prüfung sind für einen prime...
danke, ich werde versuchen Sie es und lassen Sie wissen 🙂
2 ist der nur noch prime. In der Regel ist hard codiert als prime und der code wird davon ausgegangen, alle anderen sind ungerade.
1) Dein code prüft nur, um zu sehen, wenn die Zahl ist teilbar durch 2 oder 3 ist, 2) den Wert false zurück, nach der ersten Zahl, die nicht 'prime' gefunden. 3) Sie nie hinzufügen, neue Primzahlen zu
array
4) selbst wenn Sie es hinzufügen Primzahlen zu array
erhöhen Sie prime
durch array[i]
die überspringen viele Primzahlen.warum "i++", statt "i+=2", sind auch zahlen, die jemals Primzahl? Sie können auch nur brauchen, untersuchen der Vergangenheit nur die Hälfte der Anzahl Ihrer Prüfung sind für einen prime...
danke, ich werde versuchen Sie es und lassen Sie wissen 🙂
2 ist der nur noch prime. In der Regel ist hard codiert als prime und der code wird davon ausgegangen, alle anderen sind ungerade.
InformationsquelleAutor NilR | 2014-02-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
HINWEIS: Angeben n parameter in display - Funktion und Holen Sie sich die Primzahlen von 2 bis n ...
Check-out JSFiddle
Updateing: Beachten Sie, dass das obige Skript ist korrekt und ich bin verlassen, es ist, obwohl das hinzufügen der gleichen Funktion mit einer Funktionalität zusätzlich:
Erklärung:
prime
Funktion erwartet zwei Parameter, der erste ist erforderlich, und die zweite ist optional. Wenn nur der erste parameter angegeben ist die Funktion zurücktrue
oderfalse
basierend auf der Anzahl gehört oder nicht-Primzahlen. Wenn der zweite parameter angegeben wird, wietrue
(oder jede andere Art außerundefined
undfalse
) - Funktion zurückarray
von Primzahlen aus2
zun
. Zum Beispiel:Aktualisiert...
Getestet hab ich die verstrichene Zeit zwischen Lösung diskutiert algorithmen und Unterschied tritt auf, sinnvoll etwa 100 Millisekunden, wenn
N
ist100000
Obwohl es variiert sehr stark...
Sie brauchen nur zu überprüfen, bis zu der Quadratwurzel der
num
.InformationsquelleAutor tnanoba
InformationsquelleAutor Kamil Bagi
Ursprünglichen code hat zahlreiche Mängel. Zur Umsetzung der Sieb des Eratosthenes, die Sie brauchen, um hinzuzufügen, jede prime, finden Sie in ein array, und testen Sie dann die nächsten Kandidaten prime gegen jede Primzahl, die Sie bisher gefunden habe. Wenn der Kandidat nicht teilbar durch jede der Primzahlen in dem array, dann ist es eine Primzahl, und Sie können es hinzufügen, um Ihre array von Primzahlen.
Hier ist eine funktionierende version (Demonstration):
Beachten Sie, dass dies hängt davon ab,
Array.der Prototyp.alle
wurde in ECMAScript 5.InformationsquelleAutor p.s.w.g
Haben Sie eine Menge von Möglichkeiten, dies zu erreichen.
Waren Sie im Grunde auf dem richtigen Weg, allerdings, Sie haben zu prüfen, jede Zahl, ob es teilbar durch jede Primzahl, die Sie bestimmt so weit:
Das Ergebnis sehen Sie hier
Oder verwenden Sie den Sieb des Eratosthenes die Art aus allen zahlen zu vermeiden, dupliziert tests.
Eine echte Umsetzung des SoE:
Demo
InformationsquelleAutor Christoph
könnte dies ein effizienter Weg :
InformationsquelleAutor SinaX
Hier ist ein Beispiel, wie Sie erzeugen eine unbegrenzte Anzahl von Primzahlen, mit Hilfe einer Variante des Sieb des Eratosththenes. Es ist eine wahre SoE, und führt keine trial-Abteilung, um zu bestimmen, ob eine Zahl eine Primzahl ist. Es sieht vielleicht ein wenig seltsam, aber das ist, weil es ist entworfen, um zu arbeiten, ohne irgendeine Obere Schranke.
InformationsquelleAutor BenGoldberg
InformationsquelleAutor user8640104
InformationsquelleAutor Pundalik MP
Ich weiß, diese Frage 2014, aber nur im Fall, wenn OP oder jemand Fragen, wie zu erzeugen kleine Primzahlen mit Javascript, ich haben gemeinsam die kleinen JS-code in https://github.com/HMaxF/generate-small-prime-number.
In meinem macbook pro, die ich erzeugen kann, die alle Primzahlen von 2 bis 100 Millionen, die in rund 25 Sekunden, aber Ihre Maschine in Folge variieren.
InformationsquelleAutor hmaxf2