#include<stdio.h>
/*
1.求最大公约数(12,24,看最小的)
对两个正整数a,b,如果若干个a之和或b之和能被b所整除或能被a所整除,
则该和数即为所求的最小公倍数。
2.求最小公倍数(3,6,看最大的)
对两个正整数a,b,如果若干个a之和或b之和能被b所整除或能被a所整除,
则该和数即为所求的最小公倍数。
*/
int main(){
int a,b,min;
int p,q,max;
printf("请输入两个数:");
scanf("%d%d",&a,&b);
//最大公约数
min=(a>b?b:a);//保持b始终为最小值
while(min>0){
if(a%min==0&&b%min==0){
break;
}
min--;
}
//求最小公倍数(3,6,看最大的)
p=(a>b)?a:b; //求两个数中的最大值
q=(a>b)?b:a; //求两个数中的最小值
max=p; //最大值赋给p为变量自增作准备
while(1){ //利用循环语句来求满足条件的数值
if(p%q==0)
break; //只要找到变量的和数能被a或b所整除,则中止循环
p+=max; //如果条件不满足则变量自身相加
}
printf("最大公约数:%d\n",min);
printf("最小公倍数是:%d\n",max);
return 0;
}
运行结果如下:
请输入两个数:12 24
最大公约数:12
最小公倍数是:24
--------------------------------
Process exited with return value 0
Press any key to continue . . .