我有一个无限素数流primeStream
(从2开始并且增加)。我还有另外一个Ints s
流量增加的幅度,我想测试它们中的每一个是否为质数。测试一个有序的无限流是否包含一个值
什么是有效的方法来做到这一点?我可以定义
def isPrime(n: Int) = n == primeStream.dropWhile(_ < n).head
但由于它需要整个流每次迭代,这似乎效率不高。的primeStream
实施(从其他地方复制无耻):
val primeStream: Stream[Int] =
2 #:: primeStream.map{ i =>
Stream.from(i + 1)
.find{ j =>
primeStream.takeWhile{ k => k * k <= j }
.forall{ j % _ > 0 }
}.get
}
好的创意 - 这肯定会与此特定问题的帮助。我想知道是否更普遍地有搜索无限增长流的好方法。 –