shining


私信TA

用户名:shining717

访问量:223

签 名:

等  级
排  名 9293
经  验 1109
参赛次数 0
文章发表 1
年  龄 0
在职情况 学生
学  校 中国计量大学
专  业

  自我简介:

TA的其他文章

解题思路:

求最小公倍数:从(两数中的较大值,到两数相乘的值)逐个遍历,如果两个数都能被整除则输出,并且退出遍历,因为是从小到大遍历,所以输出的公倍数是最小的。因为所有输入中最小公倍数最小可能是a(两数中的较大值),最大a*b肯定是公倍数。

最大公约数:用到辗转相除法,如果两数较大值对最小值求余不为零,则变为较小值和余数求余,依次往下,直到求余为零,最小为1

#include<iostream>

using namespace std;

int main()

{

    int a,b,t,max,min;

    cin>>a>>b;

    

    if(a<b) {t=a;a=b;b=t;}                 #找两个数较大值/较小值

    for(int i=b;i<=a*b;i++){

        if(i%a==0 && i%b==0) {min=i;break;}

    }                                                    #求最小公倍数

    

    while(a%b!=0){

        t=a%b;

        a=b;

        b=t;

    }

    max=b;                                  #求最大公约数

    

    cout<<max<<endl<<min;    #输出,endl换行

    return 0;

}

 

0.0分

1 人评分

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

编程语言转换

万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区