Gunnar Bittersmann: komplizierter JavaScript

Beitrag lesen

Hello out there!

die Implementierung ist in der Tat grottig.

Eine vernünftige[tm] sieht so aus:

  
// primesArray(n)  
// gibt ein Array von booleschen Werten zurück  
// an i-ter Stelle steht true, wenn i prim ist; sonst false  
function primesArray(n) {  
  var sqrt_n = Math.sqrt(n);  
  var a = new Array(n);  
  for (var i = 2; i < n; i++)  
    a[i] = true;  
  for (var i = 2; i < sqrt_n; i++)  
    if (a[i])  
      for (var j = i * i; j < n; j += i)  
        a[j] = false;  
  return a;  
}  
  
// primesList(n)  
// gibt eine Liste der Primzahlen kleiner als n zurück  
function primesList(n) {  
  var l = new Array();  
  var a = primesArray(n);  
  for (var i = 2; i < n; i++)  
    if (a[i])  
      l.push(i);  
  return l;  
}  

See ya up the road,
Gunnar

--
“Remember, in the end, nobody wins unless everybody wins.” (Bruce Springsteen)