Kotlin程序查找兩個(gè)數(shù)字的最小公倍數(shù)(LCM)

Kotlin 實(shí)例大全

在此程序中,您將學(xué)習(xí)使用最大公約數(shù)查找兩個(gè)數(shù)字的最小公倍數(shù)。這是通過(guò)Kotlin中的while循環(huán)完成的。

兩個(gè)整數(shù)的最小公倍數(shù)是最小的正整數(shù),可以被兩個(gè)數(shù)字完全整除(無(wú)余數(shù))。

示例1:Kotlin程序使用while循環(huán)和if語(yǔ)句計(jì)算最小公倍數(shù)(LCM)

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

    //n1和n2之間的最大值存儲(chǔ)在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
    }
}

運(yùn)行該程序時(shí),輸出為:

72 和120 的最新公倍數(shù)是360.

在這個(gè)程序中,要找到最小公倍數(shù)的兩個(gè)數(shù)字分別存儲(chǔ)在變量n1和n2中。
然后,我們首先將lcm設(shè)為這兩個(gè)數(shù)中最大的。
這是因?yàn)椋钚」稊?shù)不能小于最大的數(shù)。在無(wú)限while循環(huán)(while(true))中,我們檢查lcm是否完全除n1和n2。
如果是這樣,我們就找到最小公倍數(shù)了。我們打印最小公倍數(shù)并使用break語(yǔ)句跳出while循環(huán)。

這是等效的Java代碼:查找兩個(gè)Number的LCM的Java程序。

我們還可以使用GCD通過(guò)以下公式查找兩個(gè)數(shù)字的LCM:

LCM = (n1 * n2) / GCD

如果您不知道如何用Java計(jì)算GCD,請(qǐng)檢查Kotlin程序以找到兩個(gè)數(shù)字的GCD

示例2:Kotlin程序使用GCD計(jì)算LCM

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

    var i = 1
    while (i <= n1 && i <= n2) {
        // 檢查i是否是兩個(gè)整數(shù)的因數(shù)
        if (n1 % i == 0 && n2 % i == 0)
            gcd = i
        ++i
    }

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

該程序的輸出與示例1相同。

這里,在while循環(huán)中,我們計(jì)算兩個(gè)數(shù)-n1和n2的GCD。在計(jì)算之后,我們使用上面的公式來(lái)計(jì)算LCM。

Kotlin 實(shí)例大全

丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清