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