我在Scala中有这个功能,检查参数是否为素数。如何仅打印" d"的第一个值?函数isPrime可以除以" n",de"(d => n%d!= 0)"?我想要显示" d"的第一个值。那说" n"不是素数。
object Collection {
def isPrime(n: Int): Boolean = (2 until n) forall (d => n % d != 0)
def main(args: Array[String]): Unit = {
println("isPrime(7): " + isPrime(7))
println("isPrime(12): " + isPrime(12))
println("isPrime(127): " + isPrime(127))
println("isPrime(254): " + isPrime(254))
}
}
答案 0 :(得分:2)
这样的事情可能是:
def isPrime(n: Int): Boolean = (2 until n) forall { d =>
val remainder = n % d
if (remainder == 0) println("Not prime because of" + d)
remainder != 0
}
答案 1 :(得分:1)
这个怎么样?如果数字不是素数,你可以反转问题。
SELRA15_00001
因此,您可以轻松检查Option [Int]是否为true / false。 否定答案"无"意味着它是一个素数。积极的回答"一些"意味着它不是素数。
def notPrime(n: Int) = (2 until n) find (d => n % d == 0)