用Scala语言判断输入的整数是否为素数的代码
时间: 2023-09-18 09:16:25 浏览: 66
以下是用Scala语言判断输入的整数是否为素数的代码:
```
import scala.math._
def isPrime(n: Int): Boolean = {
if (n <= 1) false
else if (n == 2) true
else !(2 to (sqrt(n).toInt + 1)).exists(i => n % i == 0)
}
val num = readInt()
if (isPrime(num)) println(num + "是素数")
else println(num + "不是素数")
```
解释一下代码:
首先,定义了一个 `isPrime` 函数,用于判断一个整数 `n` 是否是素数:
- 如果 `n` 小于等于 1,那么不是素数;
- 如果 `n` 等于 2,那么是素数;
- 否则,判断从 2 到 `sqrt(n)+1`(向上取整)之间有没有能整除 `n` 的整数,如果有,那么 `n` 不是素数,否则 `n` 是素数。
接下来,读入一个整数 `num`,然后调用 `isPrime` 函数判断它是否是素数,最后输出判断结果。
注意:在实际使用中还应该加入一些异常处理和输入校验,以保证程序的鲁棒性和正确性。
相关问题
用Scala语言判断输入的整数是否为素数代码
下面是用Scala语言判断输入的整数是否为素数的代码:
```
import scala.math._
def isPrime(num: Int): Boolean = {
if(num <= 1) {
false
} else if(num == 2) {
true
} else {
val limit = sqrt(num).toInt
for(i <- 2 to limit) {
if(num % i == 0) {
return false
}
}
true
}
}
println(isPrime(7)) // true
println(isPrime(21)) // false
```
这段代码定义了一个isPrime函数,参数为一个整数num,返回值为Boolean类型。在函数内部,先判断num是否小于等于1,若是,则返回false。再判断num是否等于2,若是,则返回true。然后,计算num的平方根,取整数,作为循环上限limit。接着,从2循环到limit,查看是否存在num的约数,若存在,则返回false。最后,如果没有找到约数,则返回true。
scala语言确定一个整数是否为素数的完整代码
下面是Scala语言确定一个整数是否为素数的完整代码:
```
object PrimeChecker {
def isPrime(num: Int): Boolean = {
if (num <= 1) {
return false
}
for (i <- 2 until num) {
if (num % i == 0) {
return false
}
}
return true
}
}
```
在使用时,可以通过调用`PrimeChecker.isPrime(num: Int)`方法来判断一个整数`num`是否为素数,如果是素数则返回`true`,否则返回`false`。