干不完


私信TA

用户名:dotcpp0602153

访问量:177

签 名:

等  级
排  名 12300
经  验 931
参赛次数 0
文章发表 1
年  龄 0
在职情况 学生
学  校 吉林大学
专  业

  自我简介:

解题思路:  运用短除法,本题的其他题解均有部分超出循环的知识,这对编程小白很不友好

注意事项:很多方法都从2开始寻找最小公倍数,这种方法遇到两个互质的整数就会很复杂。

               我反向从两个整数中的最大值开始寻找,可以完美避开两数互质的情况。

参考代码:

#include<stdio.h>

#include<string.h> 

int main()

{

     int m,n,a,i;

     scanf("%d %d",&m,&n);

     if(m>n)

     {

          a=m;

          m=n;

          n=a;

     }  //保证最终n>m

     for(i=n;1;i--)

     {

          if(m%i==0&&n%i==0)//反向从最大值开始寻找最大公约数

          {

               m/=i,n/=i;

               printf("%d %d",i,i*m*n);

               break;//找到最大公倍数时就中断循环,并输出结果

          }

     }

return 0;

}


 

0.0分

1 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换

万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区