C语言求最大公约数和最小公倍数

悠悠 2022-06-14 01:48 472阅读 0赞

C语言求最大公约数和最小公倍数

方法一: 辗转相除法

有两整数a和b:

① a%b得余数c

② 若c=0,则b即为两数的最大公约数

③ 若c≠0,则a=b,b=c,再回去执行①

例如求27和15的最大公约数过程为:

27÷15 余12 15÷12余3 12÷3余0 因此,3即为最大公约数

#include

int main()

{

  1. int n,m;
  2. while(scanf("%d %d",&n,&m)!=EOF)

{

  1. int c = n;
  2. while(m != 0)
  3. \{
  4. c = n%m;;
  5. n = m;
  6. m = c;
  7. \}
  8. printf("%d\\n",n);
  9. \}

}

方法二: 调用函数

#include

using namespace std;

int main()
{
int N, M ,yueshu,gongbeishu;
while(~scanf(“%d %d”, &N, &M))
{
yueshu=__gcd(N, M);
gongbeishu=(N*M)/yueshu;
printf(“%d %d\n”, yueshu,gongbeishu);
}

  1. return 0;

}

发表评论

表情:
评论列表 (有 0 条评论,472人围观)

还没有评论,来说两句吧...

相关阅读

    相关 公约数公倍数

    最大公约数(GCD)是指两个或多个整数共有的最大因数,而最小公倍数(LCM)是指两个或多个整数共有的最小倍数。 要求两个整数的最大公约数和最小公倍数,可以使用欧几里得算法。