#include <stdio.h>
//输入两个正整数m和n,求其最大公约数和最小公倍数
/*最大公约数:几个整数中公有的约数,叫做这几个数的公约数;其中最大的一个,叫做这几个数的最大公约数。
例如:12、16的公约数有1、2、4,其中最大的一个是4,4是12与16的最大公约数。
最小公倍数:几个自然数公有的倍数,叫做这几个数的公倍数,其中最小的一个自然数,叫做这几个数的最小公倍数。
例如:4的倍数有4、8、12、16,……,6的倍数有6、12、18、24,……,4和6的公倍数有12、24,……,其中最小的是12。*/
int main()
{
int m,n,num1,num2,temp;
printf("请输入两个数:");
scanf("%d %d",&num1,&num2);
m = num1;
n = num2;
while(num2!=0){//求最大公约数
temp=num1%num2; //3%6=3 小的余大的等于小的 6%3=0
num1=num2;
num2=temp;
/*
这段代码使用辗转相除法来计算最大公约数。
通过不断取余数和更新变量的值,直到余数为0,此时的num1就是最大公约数
*/
}
printf("最大公约数是:%d\n",num1);
printf("最小公倍数是:%d\n",m*n/num1);//最小公倍数=两数相乘除以最大公约数
}