2020-09-21:已知最大公约数和最小公倍数,如何判断这两个数是否存在?

福哥答案2020-09-21:#福大大架构师每日一题#

1.如果最大公约数或者最小公倍数有小于1的,不存在这两个数。
2.如果最大公约数等于1,存在这两个数。这个步骤可以不要。
3.如果最大公约数大于最小公倍数,不存在这两个数。这个步骤可以不要。
4.如果最小公倍数不能被最大公约数整除,不存在这两个数。
5.通过所有考验,一定存在这种两个数。

代码用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
}
复制代码

 

 

敲命令 go test -v -test.run TestGcdIsExistTwoNumsByGcdLcm 执行结果如下:

 

 


***
[评论](https://user.qzone.qq.com/3182319461/blog/1600642145)

posted @   福大大架构师每日一题  阅读(245)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· Vue3状态管理终极指南:Pinia保姆级教程
点击右上角即可分享
微信分享提示