AOJ0005 GCD and LCM【数论 GCD&LCM】

题目链接:GCD and LCM(原题)         GCD and LCM(VJ)

Time Limit : 1 sec, Memory Limit : 131072 KB

Problem Description

Write a program which computes the greatest common divisor (GCD) and the least common multiple (LCM) of given a and b.

Input

Input consists of several data sets. Each data set contains a and b separated by a single space in a line. The input terminates with EOF.

Constraints

  • 0 < a,b ≤ 2,000,000,000
  • LCM(a,b) ≤ 2,000,000,000
  • The number of data sets ≤ 50

Output

For each data set, print GCD and LCM separated by a single space in a line.

Sample Input

8 6
50000000 30000000

Output for the Sample Input

2 24
10000000 150000000

题记:

这是一道计算最大公约数和最小公倍数的裸题,代码保存好,再遇到这种题直接套用。

C语言程序如下:

/* AOJ0005 GCD and LCM */
 
#include <stdio.h>
 
typedef unsigned long long ULL;
 
ULL gcd(ULL m, ULL n)
{
    return n == 0 ? m : gcd(n, m % n);
}
 
ULL lcm(ULL m, ULL n)
{
    return m / gcd(m, n) * n ;
}
 
int main(void)
{
    ULL a, b;
 
    while(~scanf("%lld%lld", &a, &b))
        printf("%lld %lld\n", gcd(a, b), lcm(a, b));
 
    return 0;
}

猜你喜欢

转载自blog.csdn.net/fyy_lufan/article/details/81158460
今日推荐