C言語 - 最小公倍数を見つける

記事ディレクトリ


序文

最小公倍数の定義:
2 つ以上の整数の公倍数を公倍数といい、0 以外の最小公倍数を最小公倍数といいます。

最小公倍数を見つける

正の整数 a と正の整数 b の最小公倍数とは、a と b で割り切れる最小の正の整数を指します。aとbの最小公倍数を求めてください。
たとえば、5 と 7 を入力し、5 と 7 の最小公倍数が 35 である場合、35 を返す必要があります。
入力の説明:
2 つの正の整数を入力します。
1≤a,b≤100000
出力の説明:
最小公倍数を出力します。

1. 説明

説明:
2 つの数値 5 と 7 があるとします
。1. まず、最小公倍数が 2 つの数値のうち大きい方であると仮定します (たとえば、5 と 7)。最小公倍数は 7 であるとします。7 が 5 と 7 を割り切れるかどうかを確認してください。同時に 7 を割り切れない場合は、8 9 10... を見て、毎回 1 を加えて、5 と 7 を割り切れるかどうかを確認します。K に達したとき、5 と 7 を同時に割り切れる最初の数は次のとおりです。最小公倍数。

2つ目の思考方法

2. コード

以下にその一部を示します内联代码片

// 法一  效率低 
//一个整形能表示的范围是四十二亿多
int main()
{
	long long  a, b;
	scanf("%lld %lld", &a, &b);
	// 求最小公倍数
	long long  m = a > b ? a : b; //假设a和b的较大值就是我们的最小公倍数
	while (1)
	{
		if (m % a == 0 && m % b == 0)
		{
			break;
		}
		m++;
	}

	printf("%lld\n", m);
	return 0;
}
// 法二
//
int main()
{
	long long  a, b;
    scanf("%lld %lld", &a, &b);
	// 求最小公倍数
	long long i = 1;
	while (a * i % b )
	{
		i++;
	}

	printf("%lld", a*i);
	return 0;
}

рекомендация

отblog.csdn.net/Ghr_C99/article/details/130877157