题目:
输入两个正整数m和n,求其最大公约数和最小公倍数。
输入:
两个整数
输出:
最大公约数,最小公倍数
代码如下:
#include<stdio.h>
int main()
{
int m,n,a,b,B,Y=1;
scanf("%d%d",&m,&n);
a=m;b=n;
if(a>b)
{
a=n;b=m;
}
for(int i=2;i<=a;i++)
{
if(a%1==0&&b%i==0)
{
a/=i;
b/=i;
Y*=i;
i=1;
}
}
B=Y*a*b;
printf("%d %d",Y,B);
}
注意:
- 求最大公因数运用的方法同理短除法,找两数公因数,除了公因数后再找公因数,直到两数再没有1以外的公因数,所有公因数之乘积即为最大公因数;
- 求最小公倍数就更简单了,将刚刚两数再没有1以外的公因数时的值相乘再乘上最大公因数,乘积即为最小公倍数。