求两个数的最大公约数,最小公倍数

来源:互联网 发布:caffe怎么用model 编辑:程序博客网 时间:2024/06/04 19:37

题目描述

输入两个正整数m和n,求其最大公约数和最小公倍数。

输入

两个整数

输出

最大公约数,最小公倍数

解题思路

最大公约数(GCD)和最小公倍数(LCM)的计算方法可以在这里获取[这儿]
本文先用辗转相除法求出两个数的最大公约数,然后利用公式

LCM(a,b)=abGCD(a,b)

求出两个数的最小公倍数,下面是代码(C)

#include <stdio.h>void swap(int *m, int *n){    int temp;    temp = *m;    *m = *n;    *n = temp;}int main(){    int a, b, l, gcd, lcm, m, n;    while (scanf("%d%d", &a, &b) != EOF)    {        m = a, n = b;        if (n > m)            swap(&m, &n);        l = n;        while (l = m % n)        {            m = n;            n = l;        }        gcd = n;        lcm = (a * b) / gcd;        printf("%d,%d\n", gcd, lcm);    }    return 0;}
0 0
原创粉丝点击