最大公因数:找到两数之间的最小数,从最小的数开始向1遍历,最先得到的就是最大的因子
最小公倍数:思路一:两数之积再除以最大因子
思路二:从二者中最大的一个开始向两数之积遍历,即可得到最小公倍数
#include<stdio.h>
int main()
{
int m, n,min;
int i;
scanf("%d%d",&m,&n);
min = m > n ? n : m ; //条件运算符
for(i=min;i >= 1;i--) //公约数范围
{
if(m % i == 0 && n % i == 0 ) //被两个数同时整除
{
printf("最大公约数为:%d \n",i);
break; //若可整除,一定是最大,就break
}
}
printf("最小公倍数为:%d\n",m*n/i);
return 0;
}
运行结果如下:
用思路二求最小公倍数如下:
#include<stdio.h>
int main()
{
int m,n,max;
scanf("%d%d",&m,&n);
int i;
max = m >n ? m : n;
for(i = max;i <= m*n;i++)
{
if(i % m == 0 && i % n == 0)
{
printf("最小公倍数为:%d\n",i);
break;
}
}
return 0;
}