辗转相除法(求最小公倍数)

时间:2022-10-28 07:18:05
#include <stdio.h>
int main( )
{
int m = 0;
int n = 0;
//输入
scanf("%d %d", &m, &n);
int k = (m > n ? n : m);
while (k = m % n)//辗转相除法
{
m = n;
n = k;
}
printf("%d", n);
return 0;
}

用辗转相法 ,使得程序变得更简单



用平常的求最小公被数,则程序复杂:

#include <stdio.h>
int main()
{
int m = 0;
int n = 0;
scanf("%d %d", &m, &n);
int k = (m > n ? n : m);
while (1)
{
if (m % k == 0 && n % k == 0)
{
break;
}
k--;
}
printf("%d", k);
return 0;
}