题解 | 素数判断

素数判断

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代码

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务