题解 | #查找组成一个偶数最接近的两个素数#

查找组成一个偶数最接近的两个素数

https://www.nowcoder.com/practice/f8538f9ae3f1484fb137789dec6eedb9

package main

import (
    "fmt"
)

func isPrime(n int) bool {
    for i:=2; i<=n/2; i++ {
        if n % i == 0 {
            return false
        }
    }

    return true
}

func findMinDiffPrimePair(n int) []int {
    var nums []int
    for i:=2; i<=n-2; i++ {
        nums = append(nums, i)
    }

    minDiff := n
    var pair []int
    for i:=0; i<len(nums); i++ {
        if !isPrime(nums[i]) {
            continue
        }
        for j:=i; j<len(nums); j++ {
            if !isPrime(nums[j]) {
                continue
            }

            if nums[i] + nums[j] == n {
                if nums[j] - nums[i] < minDiff {
                    minDiff = nums[j] - nums[i]
                    pair = []int{nums[i], nums[j]}
                }
            }
        }
    }

    return pair
}

func main() {
    var n int
    fmt.Scan(&n)

    pair := findMinDiffPrimePair(n)

    fmt.Printf("%d\n%d", pair[0], pair[1])
}
// 本题输入一个整型数字,所以采用:fmt.Scan(&n)

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

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