C语言:求输入的两个数的最小公倍数

简介: 总体思路:(一).输入两个数:a 和 b,使用 三目表达式 把较大值 取出

总体思路:

(一).

输入两个数:a b

使用 三目表达式较大值 取出

(二).

使用 while循环

循环判断 较大值 能否同时整除两个数

能整除,说明 较大值是两值的最大公倍数跳出循环

不能整除较大值++,直到能同时整除两个值跳出循环

进行打印

第一步:

(1). 输入两个数:a b

               

(2). 使用 三目表达式较大值取出

                   

实现代码:

#include <stdio.h>
int main()
{
  //输入两个数:
  long long a = 0;
  long long b = 0;
  //输入:
  scanf("%lld %lld", &a, &b);
  //使用 三目表达式 ,把较大值取出
  //假设 a 和 b 的较大值是最小公倍数
  long long m = a > b ? a : b;
  //较大值赋给 m
  return 0;
}

实现图片:

image.png

第二步:

(1). 使用 while循环,循环判断 较大值 能否同时整除两个数

             

(2). 在 while循环中,使用 if条件判断 判断 较大值能否同时整除两个数

能整除,说明较大值就是两值的最大公倍数跳出循环

           

不能整除,则 较大值++,直到能同时整除两个值跳出循环

           

进行打印

实现代码:

#include <stdio.h>
int main()
{
  //输入两个数:
  long long a = 0;
  long long b = 0;
  //输入:
  scanf("%lld %lld", &a, &b);
  //使用 三目表达式 ,把较大值取出
  //假设 a 和 b 的较大值是最小公倍数
  long long m = a > b ? a : b;
  //较大值赋给 m
  //使用 while循环,
  //循环判断 较大值 能否同时整除两个数
  while (1) //死循环,等满足用break跳出循环
  {
    //使用 if条件判断 :
    if (m % a == 0 && m % b == 0)
    //看 较大值 能否同时整除两个数
    {
      //能整除,跳出循环
      break;
    }
    //不能整除,较大值++,直到能整除两个值
    m++;
  }
  //打印:
  printf("%lld\n", m);
  return 0;
}

实现图片:

image.png

思路一:最终代码和实现效果

最终代码:

#include <stdio.h>
int main()
{
  //输入两个数:
  long long a = 0;
  long long b = 0;
  //输入:
  scanf("%lld %lld", &a, &b);
  //使用 三目表达式 ,把较大值取出
  //假设 a 和 b 的较大值是最小公倍数
  long long m = a > b ? a : b;
  //较大值赋给 m
  //使用 while循环,
  //循环判断 较大值 能否同时整除两个数
  while (1) //死循环,等满足用break跳出循环
  {
    //使用 if条件判断 :
    if (m % a == 0 && m % b == 0)
    //看 较大值 能否同时整除两个数
    {
      //能整除,跳出循环
      break;
    }
    //不能整除,较大值++,直到能整除两个值
    m++;
  }
  //打印:
  printf("%lld\n", m);
  return 0;
}

实现效果:

0abd04654c6d48fe9545b03966f6a75d.png

思路二:a * i % b

(使用方法,效率更高)

总体思路:

(一).

输入两个数:a b

(二).


求 a 和 b 的最小公倍数:


     


假设两值的最小公倍数是 k ,有 i = 1,


让        a * i % b        看能不能整除(余数等于0)


能整除,最小公倍数是 k = a * i


不能整除,则 i++,


直到能整除为止,此时最小公倍数 k = a * i


             

第一步:

输入两个数:a b

                   

实现代码:

#include <stdio.h>
int main()
{
  //输入两个数:
  long long a = 0;
  long long b = 0;
  //输入:
  scanf("%lld %lld", &a, &b);
  return 0;
}

实现图片:


e9efe1646093449987dfadcefd722a40.png

第二步:

使用 while循环判断 a * i % b 能否整除

           

能整除最小公倍数k = a * i ,进行打印

               

不能整除,则 i++

           

直到能整除为止,此时最小公倍数k = a * i

                   

实现代码:

#include <stdio.h>
int main()
{
  //输入两个数:
  long long a = 0;
  long long b = 0;
  //输入:
  scanf("%lld %lld", &a, &b);
  //求最小公倍数:
  int i = 1; //a的倍数
  while (a * i % b != 0)//这里 !=0 可以省略
  // a * i 不能整除 b,则改变 i,即a的倍数,
  //直到可以整除退出循环
  {
    i++;//不能整除则 i++
  }
  //直到能整除为止,此时最小公倍数 k = a * i
  printf("%lld\n", a * i);
  return 0;
}

实现图片:

image.png

思路二:最终代码和实现效果

最终代码:

#include <stdio.h>
int main()
{
  //输入两个数:
  long long a = 0;
  long long b = 0;
  //输入:
  scanf("%lld %lld", &a, &b);
  //求最小公倍数:
  int i = 1; //a的倍数
  while (a * i % b != 0)//这里 !=0 可以省略
  // a * i 不能整除 b,则改变 i,即a的倍数,
  //直到可以整除退出循环
  {
    i++;//不能整除则 i++
  }
  //直到能整除为止,此时最小公倍数 k = a * i
  printf("%lld\n", a * i);
  return 0;
}

实现效果:

f5bb16b4d1be4b9ca323bb547abc3480.png

相关文章
|
3月前
|
人工智能 BI C语言
【C语言】求两个数的最大公约数和最小公倍数(极简代码版)
【C语言】求两个数的最大公约数和最小公倍数(极简代码版)
26 1
|
3月前
|
算法 C语言
C语言中的最大公约数和最小公倍数,居然如此简单!
C语言中的最大公约数和最小公倍数,居然如此简单!
|
2月前
|
C语言
C语言---最大公约数和最小公倍数的求法
C语言---最大公约数和最小公倍数的求法
|
2月前
|
算法 C语言
C语言——最大公因数和最小公倍数
C语言——最大公因数和最小公倍数
48 0
|
3月前
|
C语言
C语言每日一练——Day02:求最小公倍数(3种方法)
C语言每日一练——Day02:求最小公倍数(3种方法)
|
3月前
|
C语言
C语言之九九乘法表||素数||最小公倍数
C语言之九九乘法表||素数||最小公倍数
35 0
|
3月前
|
C语言
最大公约数和最小公倍数(c语言)
最大公约数和最小公倍数(c语言)
|
3月前
|
C语言
C语言刷题:整数加逗号、删除公共字符、求最小公倍数和将字符串倒置
C语言刷题:整数加逗号、删除公共字符、求最小公倍数和将字符串倒置
53 0
|
3月前
|
算法 C语言
C语言求最大公约数和最小公倍数
C语言求最大公约数和最小公倍数
34 0
|
3月前
|
算法 C语言
【C 语言经典100例】C 练习实例16 - 最大公约数和最小公倍数
【C 语言经典100例】C 练习实例16 - 最大公约数和最小公倍数
25 0