#include<stdio.h>
int main()
int a, b;
scanf("%d%d", &a, &b);
for (int i = 1; ; i++)
if (i%a == 0 && i%b == 0)//寻找能同时整除a,b的整数i
printf("%d", i);
break;//找到,退出
return 0;
当然,上面这个方法简单,但是循环的次数较多,可以从a,b中的较大值开始查找,以优化算法:
#include<stdio.h>
int main()
int a, b;
scanf("%d%d", &a, &b);
if (a < b) //如果a<b,交换值,让a成为较大值
int temp;
temp = a;
a = b;
b = temp;
for (int i = a; ; i++)
if (i%a == 0 && i%b == 0)//寻找能同时整除a,b的整数i
printf("%d\n", i);
break;
return 0;
int main()
int a = 0, b = 0;
printf("请输入a和b的值\n");
scanf("%d %d", &a, &b);
int tem ;
while (1)
if (tem % a == 0 && tem % b == 0)
break;
tem++;
printf("%d", tem);
return 0;
在一的上面优化,找到第一个数的倍数并用它来除第二个数,如果能整除,则是最小公倍数
# define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
int a = 0, b = 0;
printf("请输入a和b的值\n");
scanf("%d %d",&a, &b);
int i=1;
while (1)
if ((a * i) % b == 0)
break;
printf("%d", a * i);
return 0;