多个数求最小公倍数详解!

多个数求最小公倍数详解!

最小公倍数

既然想算最小公倍数,首先要清楚最小公倍数的求法,还有最大公约数的求法

最小公倍数*最大公约数=两数乘积

有了公式,我们很清楚可以知道了,只要有最大公约数就可以求出最小公倍数,因为两数乘积肯定是已知的,所以下面将讲解一下两个数如何求最大公约数。

1.辗转相除法(方法有很多,只介绍我会的,并且易懂的hhhh)

辗转相除法, 又名欧几里德算法(Euclidean algorithm),是求最大公约数的一种方法。它的具体做法是:

用较大数除以较小数,再用出现的余数(第一余数)去除除数,再用出现的余数(第二余数)去除第一余数,如此反复,直到最后余数是0为止。如果是求两个数的最大公约数,那么最后的除数就是这两个数的最大公约数。

好吧,定义总是那么的复杂且难懂,下面直接一张表格,实现一遍辗转相除法,聪明的你肯定一遍就看会!

15 55 15=15%55 10=55%15 5=15%10 0=10%5(最大公约数 5 )如果你看懂了两个数如何求最小公倍数,那么求多个数的最小公倍数就不难了。

主要就是遵循一个准则:

先求前两个数的最小公倍,再用这个最小公倍数与下一个数求最小公倍数

再举一个例子求一下(5 7 15) 的最小公倍数

字迹可能有些潦草,但是很认真哈哈哈哈哈哈!

如果大致过程会了,代码肯定是会了

代码实现:

import java.math.BigInteger;

import java.util.*;

public class Main {

public static void main(String[] args) {

Scanner sc = new Scanner(System.in);

int n = sc.nextInt();

while (n-- > 0) {

int k = sc.nextInt();

int sum = 1;

for (int i = 0; i < k; i++) {

int p = sc.nextInt();

sum *= p / ff(sum, p);

}

System.out.println(sum);

}

}

public static int ff(int x,int y){

int r ;

while(y!=0){

r=x%y;

x=y;

y=r;

}

return x;

}

}

没有考虑大数的问题,根据题意选择long还是int。

下面介绍一个杭电oj的题目,因为你即使看的再懂不去实践也是不行的!

比如杭电的2028!

总结

大家共同学习,写错的地方请提出谢谢。

相关推荐

视频格式转换器哪个最好?多款软件任你挑选(最全)
大数据都查什么
365现金卡

大数据都查什么

📅 07-08 👁️ 8536
途牛金服简介
约彩365官方网站下载

途牛金服简介

📅 07-06 👁️ 9453
如何搭建一个好的java框架
365体育官网平台手机

如何搭建一个好的java框架

📅 07-03 👁️ 2530
女人养猫的好处与小烦恼
约彩365官方网站下载

女人养猫的好处与小烦恼

📅 07-01 👁️ 7156
推塔手游有哪些
约彩365官方网站下载

推塔手游有哪些

📅 06-29 👁️ 9197
win7删除管理员方法 win7怎么删除了管理员
365现金卡

win7删除管理员方法 win7怎么删除了管理员

📅 07-07 👁️ 5374
别人家的食堂!带你看看vivo食堂是怎么牢牢抓住员工的胃的
约彩365官方网站下载

别人家的食堂!带你看看vivo食堂是怎么牢牢抓住员工的胃的

📅 06-27 👁️ 4968
使用“DiskGenius”精确隐藏硬盘坏道
365体育官网平台手机

使用“DiskGenius”精确隐藏硬盘坏道

📅 06-30 👁️ 1523