C言語で最小公倍数を求める方法
ユークリッドの互除法を使用して、C言語で最小公倍数を計算できます。手順を以下に示します。
- 2つの整数を入力として受け取る、lcm 関数を定義します。
- 2つの数値の中で大きな方を格納するための変数 max を宣言します。
- 条件演算子で2つの数の大きさを比較し、大きな方に max を代入する。
- 真になった時に2つ以上の整数が割れるまで、while ループを使う
- ループ内でmaxが2つの数字を同時に割り切れるかどうかを判断し、割り切れる場合はmaxを返す。
- さもなくば、max を 1 ずつ増やします。
- 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 つの整数を入力し、最小公倍数を出力しています。