c语言求最大公因数最小公倍数无输出

#include <stdio.h>
int main()
{
int m,n,e,max,min;
scanf("%d %d",&m,&n);
for(e=2;e<m;e++)
{
if(m%e==0&&n%e==0)
max=e;
break;
}
min=(m*n)/max;
printf("%d %d",max,min);
return 0;
}

输入66 33
应得到33 66
实际得到

for循环中e应该e<=n,把break去掉,这样才是最大公因数

#include <stdio.h>
int main()
{
int m,n,e,max,min;
scanf("%d %d",&m,&n);
for(e=2;e<=n;e++)
{
if(m%e==0&&n%e==0)
    max=e;
}
min=(m*n)/max;
printf("%d %d",max,min);
return 0;
}

if (m % e == 0 && n % e == 0)
{
max = e;
break;
}