Kotlin程序查找两个数字的最小公倍数(LCM)

Kotlin 实例大全

在此程序中,您将学习使用最大公约数查找两个数字的最小公倍数。这是通过Kotlin中的while循环完成的。

两个整数的最小公倍数是最小的正整数,可以被两个数字完全整除(无余数)。

示例1:Kotlin程序使用while循环和if语句计算最小公倍数(LCM)

fun main(args: Array<String>) {
    val n1 = 72
    val n2 = 120
    var lcm: Int

    //n1和n2之间的最大值存储在lcm中
    lcm = if (n1 > n2) n1 else n2

    // 一直为 true
    while (true) {
        if (lcm % n1 == 0 && lcm % n2 == 0) {
            println("$n1和$n2的LCM为 $lcm.")
            break
        }
        ++lcm
    }
}

运行该程序时,输出为:

72 和120 的最新公倍数是360.

在这个程序中,要找到最小公倍数的两个数字分别存储在变量n1和n2中。
然后,我们首先将lcm设为这两个数中最大的。
这是因为,最小公倍数不能小于最大的数。在无限while循环(while(true))中,我们检查lcm是否完全除n1和n2。
如果是这样,我们就找到最小公倍数了。我们打印最小公倍数并使用break语句跳出while循环。

这是等效的Java代码:查找两个Number的LCM的Java程序

我们还可以使用GCD通过以下公式查找两个数字的LCM:

LCM = (n1 * n2) / GCD

如果您不知道如何用Java计算GCD,请检查Kotlin程序以找到两个数字的GCD

示例2:Kotlin程序使用GCD计算LCM

fun main(args: Array<String>) {
    val n1 = 72
    val n2 = 120
    var gcd = 1

    var i = 1
    while (i <= n1 && i <= n2) {
        // 检查i是否是两个整数的因数
        if (n1 % i == 0 && n2 % i == 0)
            gcd = i
        ++i
    }

    val lcm = n1 * n2 / gcd
    println("$n1 和 $n2 的最小公倍数是 $lcm.")
}

该程序的输出与示例1相同。

这里,在while循环中,我们计算两个数-n1和n2的GCD。在计算之后,我们使用上面的公式来计算LCM。

Kotlin 实例大全