分类 三个数共有的,两个数共有的,一个数共有的 ,只乘一次
#include "stdio.h"
int max(int x, int y, int z)
{
if(x > y && x > z)
return x;
else if(y > x && y > z)
return y;
else
return z;
}
int main()
{
int x1,x2,x3,t = 1, i, flag ,x0;
scanf("%d %d %d",&x1,&x2,&x3);
x0 = max(x1,x2,x3);
for(i = 2; i <= x0; i++)
{
flag = 1;
while(flag == 1)
{
flag = 0; //默认没有公因数
if(x1 % i == 0)// i 是否为x1的因子
{
x1 = x1 / i;
flag = 1;
}
if(x2 % i == 0)
{
x2 = x2 / i;
flag = 1;
}
if(x3 % i == 0)
{
x3 = x3 / i;
flag = 1;
}
if(flag == 1)
t *= i;// *t 为所有因子的乘积,最后得到最小公倍数
}
x0 = max(x1,x2,x3);
}
printf("%d\n",t);
return 0;
}