两个数m,n,最大公约数的求法为:
令i的初始值为1.
1、计算m%i,n%i。
2、取余后若都为0则i赋值给ys。
3、i++后继续执行1步骤,直到i的值等于m或者n。
4、由于可以被整除的i值都不断赋值给ys并且较大的值取代较小的值,故打印出的ys就为最大公约数。
由数学知识可知,m,n两个数最小公倍数(bs) =(m*n)/最大公约数。
#include<stdio.h>
int main()
{
int m, n ,ys , bs;
scanf("%d %d", &m, &n);
int i = 1;
while (i <= m && i <= n)
{
if (m % i == 0 && n % i == 0)
{
ys = i;
}
i++;
}
bs = (m * n) / ys;
printf("%d %d", ys,bs);
return 0;
}