1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| 获取大于指定数字n的最小质数 遍历2到根号n的数字,出现能够整除的就不是质数,遍历到根号n的原因是,大于根号n的数字,如果存在能被整除的数字,被除后的数字肯定小于根号n,也就是被遍历过判定为不是质数的,也就不需要继续遍历了
func FindSmallestPrimeLargerThan(n int) int { n++ for { success := true for i := 2; i*i < n; i++ { // 从2开始遍历,到根号n的数字,期间没有能被整除的数字,证明n是质数 if n%i == 0 { //如果能被整除,不是质数,n+1进入下一个循环 success = false break } }
if success { return n } n++ } return n }
|