Skip to content

Instantly share code, notes, and snippets.

@andrewgazelka
Created November 27, 2018 13:51
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save andrewgazelka/977ade9862f7fd6fff686b6bdc1db70c to your computer and use it in GitHub Desktop.
Save andrewgazelka/977ade9862f7fd6fff686b6bdc1db70c to your computer and use it in GitHub Desktop.
fun main(args: Array<String>) {
val generator = sequence {
var i = 2L
while (true) {
yield(i)
i++
}
}
val iterator = generator.iterator()
val millis = measureTimeMillis {
runBlocking {
repeat(1000)
{
launch {
repeat(5000)
{
val i = iterator.next()
val prime = isPrime(i)
if (prime) {
println(i)
}
}
}
}
}
}
println("Total ms: $millis")
}
fun isPrime(num: Long): Boolean {
val sqrt = sqrt(num.toDouble()).toLong()
for (i in 2..sqrt) {
if (num % i == 0L)
return false
}
return true
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment