JSK-391 公约公倍【入门】

公约公倍
输入两个正整数,求其最大公约数和最小公倍数。
输入格式
每行输入两个正整数 a,b(1≤a,b≤10^4)。
输出格式
输出两行,分别是 a,b的最大公约数和最小公倍数。
样例输入
2 3
样例输出
1
6

问题链接JSK-391 公约公倍
问题描述:(略)
问题分析
这是一个数论问题,计算最大公约数是用欧几里德算法实现的,而且是递归实现。最小公倍数则根据数论中的公式进行计算。
程序说明:(略)
参考链接:(略)
题记
    数论问题是常见的程序设计问题。
    功能封装到函数。

AC的C语言程序如下:

/* JSK-391 公约公倍 */

#include <stdio.h>

int gcd(int m, int n)
{
    return n == 0 ? m : gcd(n, m % n);
}

int lcm(int m, int n)
{
    return m / gcd(m, n) * n ;
}

int main(void)
{
    int a, b;

    while(~scanf("%d%d", &a, &b))
        printf("%d\n%d\n", gcd(a, b), lcm(a, b));

    return 0;
}

猜你喜欢

转载自blog.csdn.net/tigerisland45/article/details/82931436