September 2017 Update
This commit is contained in:
parent
bba7bfd280
commit
ba8067c3b7
14570 changed files with 153136 additions and 63871 deletions
|
|
@ -0,0 +1,37 @@
|
|||
// version 1.1.0
|
||||
// compiled with flag -Xcoroutines=enable to suppress 'experimental' warning
|
||||
|
||||
import kotlin.coroutines.experimental.buildSequence
|
||||
|
||||
fun generatePowers(m: Int) =
|
||||
buildSequence {
|
||||
var n = 0
|
||||
val mm = m.toDouble()
|
||||
while (true) yield(Math.pow((n++).toDouble(), mm).toLong())
|
||||
}
|
||||
|
||||
fun generateNonCubicSquares(squares: Sequence<Long>, cubes: Sequence<Long>) =
|
||||
buildSequence {
|
||||
val iter2 = squares.iterator()
|
||||
val iter3 = cubes.iterator()
|
||||
var square = iter2.next()
|
||||
var cube = iter3.next()
|
||||
while (true) {
|
||||
if (square > cube) {
|
||||
cube = iter3.next()
|
||||
continue
|
||||
} else if (square < cube) {
|
||||
yield(square)
|
||||
}
|
||||
square = iter2.next()
|
||||
}
|
||||
}
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
val squares = generatePowers(2)
|
||||
val cubes = generatePowers(3)
|
||||
val ncs = generateNonCubicSquares(squares, cubes)
|
||||
print("Non-cubic squares (21st to 30th) : ")
|
||||
ncs.drop(20).take(10).forEach { print("$it ") } // print 21st to 30th items
|
||||
println()
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue