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

Problem Description

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

Input

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

数据保证在 int 范围内。

Output

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

答案保证在 int 范围内。

Sample Input

64 48

Sample Output

16

192

源代码

#include<stdio.h>
int main()
{
 int x,y,m,n;
 scanf("%d %d",&x,&y);
 m=x*y;
 while(y!=0)
 {
  n=x%y;
  x=y;
  y=n;
 }
 printf("%d\n",x);
 printf("%d\n",m/x);
 return 0;
}

下面是我家任先生的:

(虽然有点麻烦,但他好厉害的,原创在这里https://blog.csdn.net/weixin_44408138
#include<stdio.h>
int main()
{
 int a,b;
 int i,k;
 scanf("%d %d",&a,&b);
 if(a>0&&b>0)
 {
 if(a<b)
 {
     for(i=b-1;i>0;i--)
     {
      if(a%i==0&&b%i==0)
      {
         printf("%d\n",i); 
         break;
      }
        }
        for(k=a+1;k<2147483647;k++)
        {
         if(k%a==0&&k%b==0)
         {
             printf("%d\n",k);
             break;
         }
  }
    }
 else if(a==b)
 {
  printf("%d\n%d\n",a,a);
 }
    else
    {
     for(i=a-1;i>0;i--)
     {
      if(a%i==0&&b%i==0)
      {
         printf("%d\n",i); 
         break;
      } 
  }
  for(k=b+1;k<2147483647;k++)
  {
   if(k%a==0&&k%b==0)
   {
    printf("%d\n",k);
    break;
   }
  }
 }
    }
    else
 return 0;
 }

  • 8
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 假设您输入两个正整数为a和b,它们的最大公约数(Greatest Common Divisor,缩写为GCD)是同时整除a和b的最大正整数。而最小公倍数(Least Common Multiple,缩写为LCM)则是同时是a和b的倍数最小的正整数。 计算最大公约数的方法可以使用欧几里得算法(Euclidean Algorithm),通过反复用较小数去除较大数的余数,直到余数为0时,最后的除数即为最大公约数。 计算最小公倍数的方法可以通过公式LCM(a, b) = a * b / GCD(a, b) 来得到,其GCD(a, b)表示a和b的最大公约数。 因此,输入两个正整数a和b,可以按照上述方法分别得它们的最大公约数和最小公倍数。 ### 回答2: 最大公约数和最小公倍数是初数学的重要概念。当我们需要找到两个正整数的公约数和公倍数时,最大公约数和最小公倍数就成为了重要的指标。 最大公约数两个正整数a和b的最大公约数,记作gcd(a,b)或(a,b),是两个能够同时整除a和b的最大正整数。可以使用辗转相除法最大公约数。辗转相除法的操作步骤是:用较大的数除以较小的数,得到余数,用较小的数除以余数,再得到余数,依此类推,直到余数为0为止。此时,较小的数就是两个数的最大公约数最小公倍数两个正整数a和b的最小公倍数,记作lcm(a,b),是能够同时整除a和b的最小正整数。可以使用辗转相乘法最小公倍数。辗转相乘法的操作步骤是:将两个数分解质因数,将两数共有的质因数和不同的质因数分别相乘,即可得到最小公倍数。 例如,出16和24的最大公约数和最小公倍数: 16的质因数分解为2*2*2*2,24的质因数分解为2*2*2*3,它们的公共质因数为2,所以它们的最大公约数为 2*2*2=8。它们的不同质因数为2*2*2*2*3=48,所以它们的最小公倍数为48。 最大公约数和最小公倍数可以帮助我们简化分数,约分、通分都需要用到。在初数学最大公约数和最小公倍数还有很多用处,例如,用于解决同余式、实际应用问题等等。因此,相信在学习数学,对最大公约数和最小公倍数的学习是非常重要的。 ### 回答3: 最大公约数和最小公倍数是数学的基本概念,对于输入两个正整数a和b,它们的最大公约数和最小公倍数可以通过以下方法得,其实就是找出它们的公共因数和公共倍数。 首先来最大公约数,也就是输入两个数a和b的所有公共因数最大的那个数。可以先列出a和b的所有因数,比较它们的公共因数最大的数即可得到它们的最大公约数。具体步骤如下: 1.将a和b分别进行质因数分解,即把它们分解成若干个质数的乘积。 例如,如果a=12,b=18,它们的质因数分解式为: a=2×2×3 b=2×3×3 2.找出a和b的所有公共质因数,即它们的质因数分解式都有的质数,然后将它们相乘得到它们的最大公约数。在这个例子,a和b的公共质因数只有2和3,因此它们的最大公约数为: gcd(a,b)=2×3=6 接下来再来最小公倍数,也就是输入两个数a和b的所有公共倍数最小的那个数。可以先列出a和b的所有倍数,比较它们的公共倍数最小的数即可得到它们的最小公倍数。具体步骤如下: 1.找出a和b的一个公共倍数,即它们的倍数第一个相同的数,例如6是12和18的一个公共倍数。 2.继续找出a和b的更多公共倍数,即在公共倍数的基础上继续乘上它们的公共质因数,例如12和18的公共倍数还包括2×3×6=36。 3.比较这些公共倍数最小的一个,即为它们的最小公倍数。例如12和18的最小公倍数为36。 因此,对于输入两个正整数a和b,它们的最大公约数为6,最小公倍数为36。最大公约数和最小公倍数的方法可以使用质因数分解法、约数枚举法、辗转相除法、更相减损法等多种方法,其质因数分解法和辗转相除法是比较常用和简便的方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值