AOJ0005 GCD and LCM【数论 GCD&LCM】

1 篇文章 0 订阅

题目链接: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;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值