Fu Ge Answer 2020-09-21:#福大建築家デイリーワン質問#
1.最大の共通除数または最小の共通倍数が1未満の場合、これら2つの数値は存在しません。
2.最大の共通除数が1に等しい場合、これら2つの数値が存在します。このステップはオプションです。
3.最大の共通除数が最小の共通の倍数よりも大きい場合、これら2つの数値は存在しません。このステップはオプションです。
4.最小の共通の倍数が最大の共通の除算器で均等に割り切れない場合、これら2つの数値は存在しません。
5.すべてのテストに合格するには、そのような2つの数値が必要です。
コードはgo言語で書かれています。コードは次のように表示されます。
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
}
コマンドgotest -v -test.run TestGcdIsExistTwoNumsByGcdLcmを押すと、結果は次のようになります。