On Wednesday, 30 October 2013 at 06:10:59 UTC, Ali Çehreli wrote:
On 10/29/2013 11:04 PM, Zeke wrote:
lowerBound and friends are related:
http://dlang.org/phobos/std_range.html#.lowerBound
Ali
lowerBound returns a range with the last value being the sqrt, so
I can't directly iterate over it because the squares of primes
get into the primes array. My code looks like this now:
...
auto sqrt = cast(ulong)sqrt(cast(double)num);
auto sorted = assumeSorted(primes);
ulong upper = sorted.lowerBound(sqrt).length + 1;
foreach(ulong prime; sorted[0..upper]) {
...
Which has no speed improvement, but is using a standard library,
so that accomplishes that.
I'd like to refactor so that the primes array is always a
SortedRange, so I don't have to cast it for every call of
is_prime(). What type would I need to change is_prime(ulong[]
primes, ulong num) to so that I could give it the SortedRange?
Also how would I insert a found prime onto the back of a
SortedRange?
Zeke