C/C++训练1---最大公约数与最小公倍数 (sdut oj)


C/C++训练1---最大公约数与最小公倍数

Time Limit: 1000MS  Memory Limit: 65536KB


  
Problem Description
输入两个整数,求它们的最大公约数与最小公倍数。

Input
输入两个整数,两个整数之间用空格分开。

Output
第一行输出最大公约数;
第二行输出最小公倍数。

Example Input
64 48

Example Output
16
192

Hint

Author







参考代码


#include <stdio.h>
int main()
{
    int a,b,temp,temp1,temp2;
    int i=1,i2=1;
    scanf("%d%d",&a,&b);
    if(a > b)
    {
        temp = a;
        a = b;
        b = temp;
    }
    temp1 = a;
    temp2 = b;
    while(b % temp1)
    {
        temp1 = a / i;
        i++;
    }
    while(temp2 % a)
    {
        temp2 = b * i2;
        i2++;
    }
    printf("%d\n%d",temp1,temp2);
    return 0;
}



### 回答1: 最大公约数最小公倍数学中常见的概念。最大公约数是指两个或多个中最大的能够同时整除它们的,而最小公倍数则是指两个或多个中最小的能够被它们同时整除的。在学中,最大公约数最小公倍数有着广泛的应用,例如在分化简、约分、分加减乘除等运算中都需要用到最大公约数最小公倍数。 ### 回答2: 最大公约数最小公倍数学中非常基础的概念,初中学中也经常涉及到这些知识点。最大公约数通常简称为“最大公因”,是指两个或多个的公共因中最大的一个,而最小公倍数是指两个或多个公有的倍中最小的一个。 首先来看最大公约数。求两个最大公约数,一般有以下三种方法:辗转相除法、质因分解法和更相减损法。其中,辗转相除法是最常用的一种方法。举个例子,求30和45的最大公约数,可以使用辗转相除法: 30÷45=0余30; 45÷30=1余15; 30÷15=2余0。 因为能整除30和45的公共因只有1、3、5和15这几个,而这些里又最大的是15,所以得出30和45的最大公约数15。 接着来看最小公倍数,计算方法也有多种,其中最常用的是分解质因法。举个例子,求12和15最小公倍数,可以按照以下步骤分解质因: 12=2²×3,15=3×5。 将分解得到的质因分别列出来,并取每个质因的最高次幂,最后相乘即为最小公倍数。所以,12和15最小公倍数就是2²×3×5=60。 最后需要注意的是,当涉及到多个最大公约数最小公倍数时,可以通过求两两之间的最大公约数最小公倍数,来逐步推导出所有最大公约数最小公倍数。 ### 回答3: 最大公约数最小公倍数是初等论中非常基础且重要的概念。最大公约数是指若干中共有的最大因,而最小公倍数则是指若干中共有的最小倍。在解决一些学问题的时候,常常需要用到最大公约数最小公倍数。 求最大公约数的方法有很多种,其中最常见的方法是辗转相除法,也叫欧几里得算法。假设有两个a和b,不妨设a>b,那么我们可以先用a除以b,得到商q和余r。又有a = bq + r,那么如果r=0,那么b就是最大公约数;否则,我们可以继续用b除以r,得到商q'和余r',再将r当做新的b,r'当做新的a进行相除。 直到余等于0为止。 求最小公倍数的方法也有多种,其中最常见的方法是用两个的乘积除以它们的最大公约数,即lcm(a,b) = a*b/gcd(a,b)。这个公式可以推广到更多的情况,即lcm(a1,a2,......,an) = lcm(lcm(a1,a2,......,an-1),an),其中lcm表示最小公倍数,gcd表示最大公约数。 除了求解最大公约数最小公倍数外,最大公约数最小公倍数还有许多应用。其中一个很常见的应用是用于化简分式,因为分式的化简需要将分子和分母同时约分,而约分的本质就是找到它们的最大公约数,然后将分子和分母同时除以它。此外,求解最大公约数最小公倍数还可以用于解决一些特殊的问题,比如判断两个是否互质、计算两个人的生日之差等等。 总之,最大公约数最小公倍数是基础论中的重要概念,对于初学者来说,了解和掌握它们的概念和求解方法是很重要的,也会为日后的学习提供帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值