import scala.
collection.
immutable.
Queue import scala.
annotation.
tailrec
var t
= System.
currentTimeMillis
@tailrec
def divisibleByAny
(x
: Int, list
: Vector
[Int
]): Boolean
= { h * h <= x && (x % h == 0 || divisibleByAny(x, t))
}
}
@tailrec
def morePrimes
(from
: Int, prev
: Vector
[Int
]): Vector
[Int
] = { if (prev.
length == n
) prev
else morePrimes
(from +
2,
if (divisibleByAny
(from, prev
)) prev
else prev
:+ from
) }
morePrimes(3, Vector(2))
}
System.out.println(primes(3000).last);
t = System.currentTimeMillis - t
System.out.println(t + "ms");
}
aW1wb3J0IHNjYWxhLmNvbGxlY3Rpb24uaW1tdXRhYmxlLlF1ZXVlCmltcG9ydCBzY2FsYS5hbm5vdGF0aW9uLnRhaWxyZWMKCm9iamVjdCBNYWluIGV4dGVuZHMgQXBwIHsKCgl2YXIgdCA9IFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcwoJCmRlZiBwcmltZXMobjogSW50KSA9IHsKICBAdGFpbHJlYwogIGRlZiBkaXZpc2libGVCeUFueSh4OiBJbnQsIGxpc3Q6IFZlY3RvcltJbnRdKTogQm9vbGVhbiA9IHsKICAgIGlmIChsaXN0LmlzRW1wdHkpIGZhbHNlIGVsc2UgewogICAgICB2YWwgKGggKzogdCkgPSBsaXN0CiAgICAgIGggKiBoIDw9IHggJiYgKHggJSBoID09IDAgfHwgZGl2aXNpYmxlQnlBbnkoeCwgdCkpCiAgICB9CiAgfQogIEB0YWlscmVjCiAgZGVmIG1vcmVQcmltZXMoZnJvbTogSW50LCBwcmV2OiBWZWN0b3JbSW50XSk6IFZlY3RvcltJbnRdID0gewogICAgaWYgKHByZXYubGVuZ3RoID09IG4pIHByZXYgZWxzZQogICAgICBtb3JlUHJpbWVzKGZyb20gKyAyLCBpZiAoZGl2aXNpYmxlQnlBbnkoZnJvbSwgcHJldikpIHByZXYgZWxzZSBwcmV2IDorIGZyb20pCiAgfQogIG1vcmVQcmltZXMoMywgVmVjdG9yKDIpKQp9CgoKCQoJU3lzdGVtLm91dC5wcmludGxuKHByaW1lcygzMDAwKS5sYXN0KTsKCXQgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMgLSB0CglTeXN0ZW0ub3V0LnByaW50bG4odCArICJtcyIpOwoKfQ==