在scala中求100-200之间的全部素数
时间: 2024-09-10 20:28:12 浏览: 68
求100-200之间的素数
在Scala中,我们可以使用一种叫做“筛选”(filter)的功能来找出给定范围内的素数。素数是指大于1的自然数中,除了1和它本身以外不再有其他因数的整数。以下是使用Scalaz库(如果项目依赖Scalaz)的一个简单示例,如果没有使用Scalaz,可以使用基本的for循环:
```scala
import scalaz._ // 如果你使用了Scalaz库
// 定义一个函数检查是否为素数
def isPrime(n: Int): Boolean = {
if (n <= 1) false
else n match {
case 2 | 3 => true
case _ if n % 2 == 0 => false
case _ => for (i <- 3 to math.sqrt(n).toInt by 2) yield if (n % i == 0) false else true
}
}
// 使用Scalaz的filterM和range函数求100到200之间的所有素数
val primesInRange = (100 to 200).filterM(isPrime)
primesInRange.toList // 获取结果列表
阅读全文