[考研]东大C语言编程题——02最大公约数和最小公倍数


title: '[考研]东大C语言编程题——02最大公约数和最小公倍数'
date: 2017-09-08 22:30:48
tags: [考研,东北大学,C]
thumbnail: http://upload-images.jianshu.io/upload_images/3635391-6ba8d3822c99643d.jpg
toc: true


题目标记:无

题目描述

输入m、n,求其最大公约数和最小公倍数。

解题思路

最常见的是碾转相除法,利用大数除以小数得到余数,当余数为零时,则被除数则为最大公约数。两数乘积除以最大公约数即为最小公倍数。形象的说法如下:

设两整数a,b:
① a%b=c;
② 判断c==0?b为最大公约数:{a=b;b=c;}
以上两步循环,最终得到最大公约数m
其最小公倍数:a*b/m

代码

#include <stdio.h>
int main(){
    int m,n,p,temp;
    scanf("%d%d",&m,&n);
    p=m*n;
    if(m<n){    //保证大数在前,小数在后
        temp=m;
        m=n;
        n=temp;
    }
    while(m%n!=0){  //辗转相除法
        temp=m%n;
        m=n;
        n=temp;
    }
    printf("最大公约数:%d,最小公倍数:%d\n",n,p/n);
    return 0;
}

运行结果

运行结果

Github代码地址

https://github.com/1141937908/NUNETM/blob/master/02%E6%9C%80%E5%A4%A7%E5%85%AC%E7%BA%A6%E6%95%B0%E5%92%8C%E6%9C%80%E5%B0%8F%E5%85%AC%E5%80%8D%E6%95%B0.cpp

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容