C语言求最大公约数和最小公倍数,感觉程序没问题但是运行不出结果

#include <stdio.h>
#include <math.h>

void main()
{
int m , n , j , i , k ;
printf("m=");
scanf("%d", &m );
printf("n=");
scanf("%d", &n );
if( m > n )
{
k = m;
m = n;
n = k;
}
for( i=m ; i<1 ; i-- )
{
if((m%i==0)&&(n%i==0))
{
printf("%d和%d的最大公约数为%d\n", m , n , i );
break;
}
}
for( j=n ; j>m*n ; j++ )
{
if((j%m==0)&&(j%n==0))
{
printf("%d和%d的最小公倍数为%d\n", m , n , j );
break;
}
}
}

for循环里修改下
判断条件写错了

#include <stdio.h>
#include <math.h>

void main()
{
    int m, n, j, i, k;
    printf("m=");
    scanf("%d", &m);
    printf("n=");
    scanf("%d", &n);
    if (m > n)
    {
        k = m;
        m = n;
        n = k;
    }
    for (i = m; i <= n; i--)
    {
        if ((m % i == 0) && (n % i == 0))
        {
            printf("%d和%d的最大公约数为%d\n", m, n, i);
            break;
        }
    }
    for (j = n; j <= m * n; j++)
    {
        if ((j % m == 0) && (j % n == 0))
        {
            printf("%d和%d的最小公倍数为%d\n", m, n, j);
            break;
        }
    }
}

这样就可以输出了
另外,最小公倍数=俩个数乘积除以最大公约数
这个是性质
如果解决了疑问,希望采纳一下,谢谢😍

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632