輸人兩個正整數m和n,求其最大公約數和最小公倍數
答案解析:
該題題目直接使用“輾轉相除法”來求解最大公約數,以除數和余數反復做除法運算,當余數為 0 時,就取得當前算式除數為最大公約數。
最大公約數和最小公倍數之間的性質:兩個自然數的乘積等於這兩個自然數的最大公約數和最小公倍數的乘積。所以,當我們求出最大公約數,就可以很輕松的求出最小公倍數。
代碼示例:
#include <stdio.h>
int main()
{
int p, r, n, m, temp;
printf("請輸入兩個正整數n,m:");
scanf("%d%d,", &n, &m);
//調整n保存較大的值
if (n < m)
{
temp = n;
n = m;
m = temp;
}
p = n * m;
while (m != 0)
{
r = n % m;
n = m;
m = r;
}
printf("它們的最大公約數為:%d\n", n);
printf("它們的最小公倍數為:%d\n", p / n);
return 0;
}