// code by John Landahl,
// http://stackoverflow.com/questions/20985539/
// scala-erastothenes-is-there-a-straightforward-way-to-
// replace-a-stream-with-an/20991776#comment31606932_20986428
val primes
: Stream
[ Int
] = 2 #:: Stream.
from ( 3 ,
2 ) .
filter ( i => primes.takeWhile ( j => j * j <= i) .
forall ( k => i % k > 0 ) )
// 10: 0.39s-382M 100: 0.41s-382M zero_time=0.39s
print( primes.drop ( 100000 ) .head )
// 10k: 0.62s-382M 25k: 1.02s-382M n^1.1
} // 50k: 2.12s-382M n^1.46 100k: 5.11s-382M n^1.45
b2JqZWN0IE1haW4gZXh0ZW5kcyBBcHAgeyAgCgkvLyBjb2RlIGJ5IEpvaG4gTGFuZGFobCwKCS8vIGh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMjA5ODU1MzkvCgkvLyAgIHNjYWxhLWVyYXN0b3RoZW5lcy1pcy10aGVyZS1hLXN0cmFpZ2h0Zm9yd2FyZC13YXktdG8tCgkvLyAgIHJlcGxhY2UtYS1zdHJlYW0td2l0aC1hbi8yMDk5MTc3NiNjb21tZW50MzE2MDY5MzJfMjA5ODY0MjgKCXZhbCBwcmltZXM6IFN0cmVhbVtJbnRdID0gMiAjOjogU3RyZWFtLmZyb20oMywgMikuCgkgIGZpbHRlcihpID0+IHByaW1lcy50YWtlV2hpbGUoaiA9PiBqICogaiA8PSBpKS4KCSAgICAgICAgICAgICAgICAgICAgICAgIGZvcmFsbChrID0+IGkgJSBrID4gMCkpCgkKICAgICAgICAgLy8gMTA6IDAuMzlzLTM4Mk0gICAxMDA6IDAuNDFzLTM4Mk0gICB6ZXJvX3RpbWU9MC4zOXMKCXByaW50KHByaW1lcy5kcm9wKDEwMDAwMCkuaGVhZCkgIAoJICAgICAvLyAxMGs6IDAuNjJzLTM4Mk0gICAgICAgICAgMjVrOiAxLjAycy0zODJNIG5eMS4xCn0gICAgICAgIC8vIDUwazogMi4xMnMtMzgyTSBuXjEuNDYgIDEwMGs6IDUuMTFzLTM4Mk0gbl4xLjQ1