int main(){int q,m,i,n,p;scanf("%d,%d",&m,&n);if(n>m){i=m;m=n;n=i;}p=m*n;for(q=n;m%q!=0||n%q!=0;q--)p=p/q;printf("%d,%d",q,p);return 0;}
最大公约数没问题,只是最小公倍数等式(p=p/q)在for循环内执行多次,导致结果错误,可在等式前添加花括号{}