dotcpp0694537


私信TA

用户名:dotcpp0694537

访问量:54

签 名:

等  级
排  名 7161
经  验 1286
参赛次数 0
文章发表 2
年  龄 19
在职情况 学生
学  校 内江师范学院
专  业 软件工程

  自我简介:

解题思路:短除法是众所周知的简单解法,我们只需要把短除式左侧的全部相乘即可得到最大公倍数,然后把短除式外侧的数字全部相乘即可得到最小公倍数。

注意事项:注意要跳过1这个数字,因为这个数字是任何数都可以整除,所以我们在循环时i的值直接从2开始。

参考代码:

#include<stdio.h>

int main(void){

    int m,n,i,j=1;//i时循环变量,j是标志数,用于记录被除数的变化,m,n是输入的数字。

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

    if(m>n){//这里我分了两种情况,因为最大公因数必定小于其中小的那个数,所以,最好分两种情况,避免i的值超出范围。

        for(i=2;i<n;++i){

            if(m%i==0&&n%i==0){

               m=m/i;

               n=n/i;

               j=j*i;

            }

        }

    }

    else{

        for(i=2;i<m;++i){

            if(m%i==0&&n%i==0){

                m=m/i;

                n=n/i;

                j=j*i;

            }

        }

    }

    printf ("%d\n%d",j,j*m*n);

    return 0;

}


 

0.0分

0 人评分

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

编程语言转换

万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区