题解 | 素数判断
素数判断
https://www.nowcoder.com/practice/5ab1b9690af047699e96c87dee65def4
package main
import (
"fmt"
"math"
)
// 判断是否为素数(对应原C++的isPrime函数)
func isPrime(n int) bool {
if n == 1 {
return false
}
// 计算根号n(转换为int类型,避免浮点精度问题)
sqrtN := int(math.Sqrt(float64(n)))
// 从2遍历到根号n,判断是否有因子
for i := 2; i <= sqrtN; i++ {
if n%i == 0 {
return false
}
}
return true
}
func main() {
var t int
// 读取测试用例数量t(对应C++的cin >> t)
fmt.Scan(&t)
// 循环t次处理每个测试用例(对应C++的while(t--))
for t > 0 {
t--
var n int
// 读取当前要判断的数字n
fmt.Scan(&n)
// 调用素数判断函数,输出结果
if isPrime(n) {
fmt.Println("Yes")
} else {
fmt.Println("No")
}
}
}
Go代码

