求最小公倍数

简介: 求最小公倍数

求最小公倍数


两个数公有的倍数叫做这两个数的公倍数,其中最小的一个,叫做最小公倍数


首先思考🤔,最小公倍数有可能是两数之间较大的一个。 a , b

若不是,则只能是比两数都大的数。最小公倍数记为m


m%a==0;
m%b==0;


假设a是较大的数


如果a能直接被b整除,
那么a就是这两个数的最小公倍数
若不能,就对a逐次加1并赋值给m,直到能被b整除。
例如
a=40   b=20
m=40


根据这个逻辑来编写代码


#include<stdio.h>
int main()
{
  int a = 0;
  int b = 0;
  scanf("%d%d", &a, &b);
  int m = a > b ? a : b;
  while (1)
  {
  if (m % a == 0 && m % b == 0)
  {
    break;
  }
  m++;
  }
  printf("最小公倍数->%d\n", m);
  return 0;
}


fba0b5978fbb61758793474e0c0e2b0f_2d538cdb645d44a9bb5cc2ec8467a442.png

此方法过程太过繁琐,换另一种思考方式


既然是求最小公倍数,一定存在正整数 i j 使下列式子成立


a*i==b*j==m


所以只需要对i逐次加1,直到能被b整除
此时 m==a*i


代码实现如下


#include<stdio.h>
int main()
{
  int a = 0;
  int b = 0;
  scanf("%d%d", &a, &b);
  int i = 1;
  //当a*i%b==0时,不进入循环,
  //此时最小公倍数就是a*i
  while (a * i % b)
  {
  i++;
  }
  printf("最小公倍数->%d\n", a * i);
}


39ab2ef88cd53d564ebd4bca43f9b7ed_fdd0d4ab6de04906a5623ae279ad11b8.png


目录
相关文章
|
5月前
|
JavaScript 前端开发 Java
最大公约数
【6月更文挑战第23天】
62 4
|
5月前
|
移动开发 算法
最大公约数和最小公倍数
【6月更文挑战第8天】最大公约数和最小公倍数。
64 9
|
5月前
每日一数——最大公约数与最小公倍数
每日一数——最大公约数与最小公倍数
|
6月前
|
算法
更相减损术求最大公约数
更相减损术求最大公约数
|
6月前
|
算法
详解最大公约数和最小公倍数
详解最大公约数和最小公倍数
|
人工智能 BI
求最大公约数和最小公倍数
求最大公约数和最小公倍数
88 0
求最大公约数最小公倍数
求最大公约数最小公倍数
116 0