C 語言基礎(chǔ)教程

C 語言流程控制

C 語言函數(shù)

C 語言數(shù)組

C 語言指針

C 語言字符串

C 語言結(jié)構(gòu)體

C 語言文件

C 其他

C 語言參考手冊

C程序?qū)ふ覂蓚€數(shù)字的最小公倍數(shù)(LCM)

C 語言編程實例大全

在此示例中,您將學(xué)習(xí)如何計算用戶輸入的兩個數(shù)字的LCM(最小公倍數(shù))。

要理解此示例,您應(yīng)該了解以下C語言編程主題:

兩個整數(shù)n1和n2的LCM是最小的正整數(shù),可以被n1和n2完全整除(沒有余數(shù))。 例如,72和120最小公倍數(shù)(LCM)為360。

使用while和if計算LCM(最小公倍數(shù))

#include <stdio.h>
int main() {
    int n1, n2, min;
    printf("輸入兩個正整數(shù): ");
    scanf("%d %d", &n1, &n2);

    //n1和n2之間的最大值存儲在min內(nèi)
    min = (n1 > n2) ? n1 : n2;

    while (1) {
        if (min % n1 == 0 && min % n2 == 0) {
            printf("%d和%d的LCM是%d。", n1, n2, min);
            break;
        }
        ++min;
    }
    return 0;
}

輸出結(jié)果

輸入兩個正整數(shù): 72
120
72和120的LCM是360。

在此程序中,用戶輸入的整數(shù)分別存儲在變量n1和中n2。

n1和n2的最大值存儲在min中,兩個數(shù)的LCM不能小于min。

while循環(huán)的測試表達(dá)式始終為真。

在每次迭代中,檢查min是否能被n1和n2完全整除。

if (min % n1 == 0 && min % n2 == 0) { ... }

如果這個測試條件不為真,那么min將遞增1,并繼續(xù)迭代,直到If語句的測試表達(dá)式為真為止。

也可以使用以下公式找到兩個數(shù)字的LCM:

LCM = (num1*num2)/GCD

了解如何在C語言編程中找到兩個數(shù)字的GCD。

使用GCD計算LCM

#include <stdio.h>
int main() {
    int n1, n2, i, gcd, lcm;
    printf("輸入兩個正整數(shù): ");
    scanf("%d %d", &n1, &n2);

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

    lcm = (n1 * n2) / gcd;

    printf("兩個數(shù)字%d和%d的LCM為%d。", n1, n2, lcm);
    return 0;
}

輸出結(jié)果

輸入兩個正整數(shù): 78
150
兩個數(shù)字78和150的LCM為1950。

C 語言編程實例大全

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