Category talk:Wren-math: Difference between revisions

Content added Content deleted
m (→‎Source code: Minor change.)
(→‎Source code: Removed some private methods which are no longer used.)
Line 308: Line 308:
}
}
return allPrimes
return allPrimes
}

// Private helper method which counts and returns how many primes there are
// up to and including 'n' using the Legendre method.
static phi_(n, a, primes) {
if (a <= 1) return (a < 1) ? n : n - (n >> 1)
var pa = primes[a-1]
if (n <= pa) return 1
return phi_(n, a-1, primes) - phi_((n/pa).floor, a-1, primes)
}

// As above method but uses memoization.
static phi_(n, a, primes, cache) {
if (a <= 1) return (a < 1) ? n : n - (n >> 1)
var pa = primes[a-1]
if (n <= pa) return 1
var key = Int.cantorPair(n, a)
if (cache.containsKey(key)) return cache[key]
return cache[key] = phi_(n, a-1, primes, cache) - phi_((n/pa).floor, a-1, primes, cache)
}
}