两个for循环有错误,i=1;进入循环条件是i >=b,根本进入不了循环。第一个for循环应该为i=b,其余不变。第二个for循环应该改为i=a,其余不变。
如果有用,请采纳。
推荐你去学习一下数论的基本知识,想求最小公倍数,你可以先用辗转相除法求出a和b的最大公约数,再用a乘b乘ab的最大公约数即可求出最小公倍数,由算术基本定理可得上述过程
#include <stdio.h>
void swap(int *a, int *b)
{
int t = *a;
*a = *b;
*b = t;
}
int gcd(int a, int b)
{
if (a > b)
swap(&a, &b);
if (b % a == 0)
return a;
return gcd(b % a, a);
}
int lcm(int a, int b)
{
return a * b / gcd(a, b);
}
int main()
{
int a, b;
printf("请输入两个整数: ");
scanf("%d%d", &a, &b);
printf("%d,%d最小公倍数是%d\n", a, b, lcm(a, b));
return 0;
}