判断⼀个数是否是质数,且数字键盘输入,用scala书写
时间: 2024-09-27 19:15:56 浏览: 42
在Scala中,判断一个数是否是质数可以采用常见的算法,例如试除法。下面是一个简单的函数,它会接收用户通过数字键盘输入的一个整数,并检查它是否为质数:
```scala
import scala.io.StdIn.readLine
def isPrime(n: Int): Boolean = {
if (n <= 1) false // 质数定义大于1,所以1不是质数
else if (n == 2) true // 2是唯一的偶数质数
else !(2 to (math.sqrt(n).toInt + 1)).exists(x => n % x == 0)
}
def getUserInput(): Int = {
println("请输入一个整数:")
val input = readLine().toIntOption filter (_.isValidInt) // 确保输入的是整数
input.getOrElse(throw new IllegalArgumentException("无效的输入"))
}
val number = getUserInput()
if (isPrime(number)) {
println(s"$number是质数")
} else {
println(s"$number不是质数")
}
```
在这个程序中,`getUserInput()`函数用于获取用户的输入,然后调用`isPrime()`函数判断这个数是否是质数。`isPrime()`函数首先处理一些特殊情况(如小于等于1的情况),然后从2开始到该数的平方根范围内遍历,如果存在能整除该数的因子,则返回false,否则返回true。
阅读全文