C言語で最小公倍数を求めるにはどうすればいいですか?
2つの数の最大公約数を求め、それを使って2つの数の積を最大公約数で割ることで、最小公倍数を得ることができます。
以下は最小公倍数を求めるためのC言語のコード例です。
#include <stdio.h>
// 求两个数的最大公约数
int gcd(int a, int b) {
if (b == 0) {
return a;
}
return gcd(b, a % b);
}
// 求两个数的最小公倍数
int lcm(int a, int b) {
int gcdValue = gcd(a, b);
return a * b / gcdValue;
}
int main() {
int num1, num2;
printf("请输入两个数:");
scanf("%d %d", &num1, &num2);
int result = lcm(num1, num2);
printf("最小公倍数为:%d\n", result);
return 0;
}
上記のコードでは、gcd関数は2つの数の最大公約数を求めるために再帰呼び出しを使用しています。lcm関数は、gcd関数を呼び出して最大公約数を求め、それを使って2つの数の積を最大公約数で割ることで最小公倍数を求めます。
main 関数では、まずユーザーから2つの数値を入力し、その後 lcm 関数を呼び出して最小公倍数を求め、最終的に結果を出力します。