2020-09-21:已知最大公約數和最小公倍數,如何判斷這兩個數是否存在?

福哥答案2020-09-21:#福大大架構師每日一題#架構

1.若是最大公約數或者最小公倍數有小於1的,不存在這兩個數。
2.若是最大公約數等於1,存在這兩個數。這個步驟能夠不要。
3.若是最大公約數大於最小公倍數,不存在這兩個數。這個步驟能夠不要。
4.若是最小公倍數不能被最大公約數整除,不存在這兩個數。
5.經過全部考驗,必定存在這種兩個數。url

代碼用go語言編寫。代碼以下:spa

package test42_gcd_lcm

import (
    "fmt"
    "testing"
)

//go test -v -test.run TestGcdIsExistTwoNumsByGcdLcm
func TestGcdIsExistTwoNumsByGcdLcm(t *testing.T) { 
    gcd := 0
    lcm := 0

    gcd = 3
    lcm = 60
    fmt.Println("gcd =", gcd, ",lcm =", lcm, "。", IsExistTwoNumsByGcdLcm(gcd, lcm))

    gcd = 5
    lcm = 10
    fmt.Println("gcd =", gcd, ",lcm =", lcm, "。", IsExistTwoNumsByGcdLcm(gcd, lcm))

    gcd = 5
    lcm = 50
    fmt.Println("gcd =", gcd, ",lcm =", lcm, "。", IsExistTwoNumsByGcdLcm(gcd, lcm))

    gcd = 5
    lcm = 20
    fmt.Println("gcd =", gcd, ",lcm =", lcm, "。", IsExistTwoNumsByGcdLcm(gcd, lcm))

    gcd = 100
    lcm = 999
    fmt.Println("gcd =", gcd, ",lcm =", lcm, "。", IsExistTwoNumsByGcdLcm(gcd, lcm))
}

//已知最大公約數和最小公倍數,如何判斷這兩個數是否存在?
func IsExistTwoNumsByGcdLcm(gcd int, lcm int) bool { 

    //1.若是最大公約數或者最小公倍數有小於1的,不存在這兩個數。
    if gcd < 1 || lcm < 1 { 
        return false
    }

    //2.若是最大公約數等於1,存在這兩個數。這個步驟能夠不要。
    if gcd == 1 { 
        return true
    }

    //3.若是最大公約數大於最小公倍數,不存在這兩個數。這個步驟能夠不要。
    if gcd > lcm { 
        return false
    }

    //4.若是最小公倍數不能被最大公約數整除,不存在這兩個數。
    if lcm%gcd != 0 { 
        return false
    }

    //5.經過全部考驗,必定存在這種兩個數。
    return true
}

敲命令 go test -v -test.run TestGcdIsExistTwoNumsByGcdLcm 執行結果以下:
在這裏插入圖片描述.net


評論code

相關文章
相關標籤/搜索