根据求两个数的最小公倍数和最大公约数的方法求3个数的最大公约数和最小公倍数。
主要的思想就是利用a%b==0&a%c==0这样的来判断是否满足,再利用循环计数即可。
#include<stdio.h>
int main()
{
int x,y,z,tem,i=1,num;
int k=1;
printf("输入3个数:\n");
scanf("%d %d %d",&x,&y,&z);
tem=x; //假设x最小
if(tem>y) //寻找三个数的最小值
{
tem=y;
}
if(tem>z)
{
tem=z;
}
for(i=1;i<=tem;i++) //设立循环的次数
{
if(x%i==0&&y%i==0&&z%i==0) //最大公约数需要满足的条件
{
num=i;
}
}
while(1) //永远成立,无条件循环
{
if(k%x==0&k%y==0&k%z==0) //判断是否为最小公倍数
break;
else
k++;
}
printf("两个数的最大公约数为:%d\n",num);
printf("两个数的最小公倍数为:%d\n",k);
}
结果测试: