C言語で最小公倍数を求める方法

ユークリッドの互除法を使用して、C言語で最小公倍数を計算できます。手順を以下に示します。

  1. 2つの整数を入力として受け取る、lcm 関数を定義します。
  2. 2つの数値の中で大きな方を格納するための変数 max を宣言します。
  3. 条件演算子で2つの数の大きさを比較し、大きな方に max を代入する。
  4. 真になった時に2つ以上の整数が割れるまで、while ループを使う
  5. ループ内でmaxが2つの数字を同時に割り切れるかどうかを判断し、割り切れる場合はmaxを返す。
  6. さもなくば、max を 1 ずつ増やします。
  7. lcm関数をこの外部から呼び出し、2つの整数を引数として渡すと、最小公倍数を取得できます。

以下のコード例を参照してください。

#include <stdio.h>

int lcm(int a, int b) {
    int max = (a > b) ? a : b;
    while (1) {
        if (max % a == 0 && max % b == 0) {
            return max;
        }
        max++;
    }
}

int main() {
    int a, b;
    printf("请输入两个整数:");
    scanf("%d %d", &a, &b);
    printf("最小公倍数为:%d\n", lcm(a, b));
    return 0;
}

上記のコードでは、最小公倍数を求める lcm 関数を定義し、main 関数内で lcm 関数を呼び出して 2 つの整数を入力し、最小公倍数を出力しています。

bannerAds