一、题目
 输入两个数,求两数的最小公倍数。
 如图:

二、思路分析
 1、先知道两个数里的最小值(比如:9和6,取6)
 2、用2到6,5个数,同时除以9和6,得最小公约数:3
 3、用9除3=3,6除3=2。得最小公倍数18(3*3*2=18)
 4、如果两数没有最小公约数,则把原来的两个数相乘
 比如:5和6,最小公倍数是5*6=30
三、代码截图【带注释】

四、源代码【带注释】
#include <stdio.h>
//思路:
 //1、先知道两个数里的最小值(比如:9和6,取6)
 //2、用2到6,5个数,同时除以9和6,得最小公约数:3
 //3、用9除3=3,6除3=2。得最小公倍数18(3*3*2=18)
 //4、如果两数没有最小公约数,则把原来的两个数相乘
 //比如:5和6,最小公倍数是5*6=30
int sct(int,int);//声明函数
 int main()
 {
     int x,y;
     printf("请输入两个大于1的数字:\n");
     
     //检测,如果x和y其中一个小于2,则重新输入
 cc:
     scanf("%d",&x);
     scanf("%d",&y);
     if((x<2)||(y<2))
     {
         printf("输入有误,请重新输入。");
         goto cc;
     }
     printf("%d",sct(x,y));//引用函数
 }
//求最大公倍数函数
 int sct(int x, int y)
 {
     int a,b,temp=1;
     
     //用a记录x与y中的最小值
     if(x>y)
     {
         a=y;
         b=x;
     }
     else
     {
         a=x;
         b=y;
     }
     
     //从2开始,不断加1,去除x和y
     //如果能整除,把i相乘,把相乘的值赋给temp
     //temp则为最小公约数
     for(int i=2; i<=a; i++)
     {
         if((x%i==0)&&(y%i==0))
         {
             temp=temp*i;
         }
     }
     
     //如果两数没有公约数,则把两数相乘
     //否则:(以9和6为例)
     //用9除3=3,6除3=2。得最小公倍数3*3*2=18
     if(temp==1)
     {
         temp=x*y;
     }
     else
     {
         temp=temp*(x/temp)*(y/temp);
     }
     return temp;
 }
五、运行结果

关注我,每天分享编程知识









![[Python进阶] Python处理txt文件:open](https://img-blog.csdnimg.cn/direct/f5bf88b882fd4e3f927ecb3859a397bd.png)








