#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;
}
}
}
这样就可以输出了
另外,最小公倍数=俩个数乘积除以最大公约数
这个是性质
如果解决了疑问,希望采纳一下,谢谢😍