Ⅰ 用javafor循环求出最大公约数和最小公倍数
Scanner input = new Scanner(System.in);
System.out.println("请输入第一个正整数:");
int m = input.nextInt();
System.out.println("请输入第二个正整数");
int n = input.nextInt();
//获取两个数最小值
int min =(m <= n)? m:n;
for (int i = min; i >= 1; i--) {
if (m % i == 0 && n % i == 0) {
System.out.println("最大公约数为"+i);
int a=m / i;
int b=n / i;
int multiple = a*b*i;
System.out.println("最小公倍数为"+multiple);
break;
}
}
Ⅱ 怎么简单找到两个数的最小公倍数
如果大数是小数的整倍数,最小公倍数就是大数;如果大数不是小数的整倍数,将两个数分别分解因数,标记公共的因数,把两个数的因数相乘,公共的因数只乘一次,就可以了.
例如:
6和36,36是6的整倍数,两个数的最小公倍数是36.
12和18
12=6×2 18=6×3 有公共的因数6
将两个数的因数相乘,6×2×6×3,公共的因数是6,只计算一次,划掉一个6,变成6×2×3=36 .最小公倍数是36.
(2)怎么循环找到最小公约数数学方法扩展阅读:
1.列举倍数法
列举倍数法(定义求法)就是分别列举出要求最小公倍数的那几个数的一些倍数,从中找出除“0”以外最小的那个公倍数,就是最小公倍数。
如:求6和9的最小公倍数。
解:6的倍数有:6,12,18,24,30,36,42……
9的倍数有:9,18,27,36,45……
从上面可以看出6和8的最小公倍数是18。
2.分解质因数法
分解质因数法就是先把要求最小公倍数的那几个数分别分解质因数,然后将原来几个数里所含该质因数的最多个数的每一个质因数相乘,所得的积就是要求的最小公倍数。
如:求60、42的最小公倍数。
解:60=2×2×3×5 42=2×3×7
60和42的最小公倍数=2×3×2×5×7=420 。
这种方法是把60和42分别质因数后,观察相同的质因数只取一个(如2,3),把各自独有的质因数全部乘进去,所得的积就是这两个数的最小公倍数。
3.短除法
用短除法求两个数的最小公倍数,一般都用这两个数除以它们的公因数,一直除到所得的两个商只有公因数1为止。把所有的除数和最后的两个商连乘起来,就得到这两个数的最小公倍数。
如:求16、28的最小公倍数。
[16、28]=2×2×4×2×7=112。
4.公式法
所谓公式法(最大公约数与最小公倍数关系)就是对于任意两个自然数a、b,只要先求出这两个数的最大公约数后,利用公式[a,b] ×(a,b)=a×b即可求出最小公倍数[a,b]=a×b÷(a,b),也即是两个数的最小公倍数等于这两个数的乘积除以这两个数的最大公约数。
如:求[105,42] 。
解:∵(105,42)=21,
∴[105,42]=105×42÷21=210。
特例:如两个数互质,则这两个数的最小公倍数就是这两个数的乘积。
5.辗转相减后相乘法
求两个数的最小公倍数,如两个数相差2倍以内,就可用辗转相减后相乘法,即连续用大数去减小数,直到所得的差能同时整除原来两个数为止,然后用这个差与整除的两个商相乘,所得的乘积就是两个数的最小公倍数。
如:求[42,30]。
解:∵42-30=12(12+42,12+30),继续往下减
30-12=18(18+42,18+30),继续往下减
18-12=6(6│42,6│30),减到此为止
6.大数翻倍法
所谓大数翻倍法就是要求两个数的最小公倍数,可以将大数从两倍找起,直到找出的数是小数的倍数(即出现新的倍数关系为止),这个倍数就是这两个数的最小公倍数。
如:求6和15,14和20的最小公倍数。
解:15的倍数有30,因为30是6的倍数,所以30是6和15的最小公倍数,即[6,15]=30。又因为20的倍数有40,60,80,100,120,140,由于140是14的倍数,所以140是14和20的最小公倍数,即[14,20]=140。
特例:如果大数本身就是小数的倍数,则这两个数的最小公倍数就是大数。
7.小数缩倍后相乘法
小数缩倍后相乘法就是求两个数的最小公倍数。如果这两个数不成倍数关系,就把小数依次除以2,3,4,5……直到除得的商能整除较大数为止,然后用这个商除以较大数所得的商与原来小数相乘所得的积就是这两个数的最小公倍数。
如:求[10,75]和[25,30]。
解:①因为小数10能被2整除,商是5,而且75÷5=15(整除),所以[10,75]=15×10=150。
②因为小数25能被5整除,商是5,且30÷5=6,所以[25,30]=6×25=150。
8.肉眼判断法
(1)如果a.b是互质数,那么a.b的最小公倍数是a×b。
如:求4和5的最小公倍数。
4和5是互质数,那么4和5的最小公倍数是4×5=20 。
(2)如果两个数中,较大的数是较小数的倍数,那么较大的数是这两个数的最小公倍数。
如:求16和8的最小公倍数。
16是8的倍数,那么16就是16和8的最小公倍数。
Ⅲ 最小公倍数 最小公约数怎么找
最小公倍数
几个数公有的倍数叫做这几个数的公倍数,其中最小的一个叫做这几个数的最小公倍数。
最小公倍数的表示:
数学上常用方括号表示。如[12,18,20]即12、18和20的最小公倍数。
最小公倍数的求法:
求几个自然数的最小公倍数,有两种方法:
(1)分解质因数法。先把这几个数分解质因数,再把它们一切公有的质因数和其中几个数公有的质因数以及每个数的独有的质因数全部连乘起来,所得的积就是它们的最小公倍数。
例如,求[12,18,20],因为12=2^2×3,18=2×3^2,20=2^2×5,其中三个数的公有的质因数为2,两个数的公有质因数为2与3,每个数独有的质因数为5与3,所以,[12,18,20]=2^2×3^2×5=180。(可用短除法计算)
(2)公式法。由于两个数的乘积等于这两个数的最大公约数与最小公倍数的积。即(a,b)×[a,b]=a×b。所以,求两个数的最小公倍数,就可以先求出它们的最大公约数,然后用上述公式求出它们的最小公倍数。
例如,求[18,20],即得[18,20]=18×20÷(18,20)=18×20÷2=180。求几个自然数的最小公倍数,可以先求出其中两个数的最小公倍数,再求这个最小公倍数与第三个数的最小公倍数,依次求下去,直到最后一个为止。最后所得的那个最小公倍数,就是所求的几个数的最小公倍数。
最大公约数
指某几个整数共有因子中最大的一个。
例如,12和30的公约数有:1、2、3、6,其中6就是12和30的最大公约数。
两个整数的最大公约数主要有两种寻找方法:
* 两数各分解质因子,然后取出同样有的项乘起来
* 辗转相除法(扩展版)
和最小公倍数(lcm)的关系:gcd(a, b)×lcm(a, b) = ab
两个整数的最大公因子可用于计算两数的最小公倍数,或分数化简成最简分数。
两个整数的最大公因子和最小公倍数中存在分配律:
* gcd(a, lcm(b, c)) = lcm(gcd(a, b), gcd(a, c))
* lcm(a, gcd(b, c)) = gcd(lcm(a, b), lcm(a, c))
在坐标里,将点(0, 0)和(a, b)连起来,通过整数坐标的点的数目(除了(0, 0)一点之外)就是gcd(a, b)。
Ⅳ 请问,如何快速获得N个数的最小公倍数
//方法
此方法把第一个数用来对其它的数求余,然后发现其中有余数不为0的情况下对此数+1,直到对所有的数都取余数为0,则该数为最小公倍数。这个方法时第一个数应该是最大数,这样会更快一些。意思很明确,有人加以修改,将循环中改为将前两个数的公倍数然后继续使用直到得出结果,效果是一样的,效率应该会更高。
#include<stdio.h>
main()
{
int num,i,a[100],d,c;
c=1;
printf("input ji ge zheng shu\n");
scanf("%d",&num);
for(i=0;i<num;i++){
printf("input di %d ge zheng shu\n",i+1);
scanf("%d",&a[i]);
}
d=a[0];
while(c==1){
for(i=0,c=0;i<num;i++){
if(d%a[i]!=0)
{c=1;d++;}
}
}
printf("gong bei shu shi %d",d);
}
--------------------------------------------------------------------------------
2 3 7 8 10 36 的最小公倍数是 2520
把这个算法定义为一个模板,方便重用,如下:
template <class T>
long GetMulLCM(T a[],int num)
{
int c=1;
if(num<=0)return ERROR;
for(int i=0;i<num;i++)
{
if(a[i]<0)return ERROR;
else if(a[i]==0)return 0;
}
T d=a[0];
while(c==1)
{
for(c=0,int i=0;i<num;i++)
{
if(d%a[i]!=0)
{
c=1;
d++;
}
}
}
return (long)d;
}
Ⅳ 怎样求最大公倍数和最小公约数
最大公倍数和最小公约数,最大公倍数是最小公倍数的n被,只要不为0的正整数,最小公约数都为1,在数学上,一般求最大公约数和最小公倍数
方法:把这几个数全部除以2,不行递加,变成3,变成n,第一次完成后,第二次,还是从2开始,递加,递加到n,第二次完成后,第三次,第n次,
结论:最大公约数就是,第一次除的数乘以第二次除的数乘以第n次除的数,
最小公倍数就是最大公约数在乘以这几个数的余数
讲了这么多,不知道效果怎么样,能听懂么,不懂的,可以继续问
Ⅵ 求最大公因数和最小公倍数的几种方法
求最大公因数和最小公倍数的方法:
一、
特殊情况:
1
、倍数关系
的两个数,最大公因数是较小的数,最小公倍数是较大的数。(如;
6
和
12
的最大公因数是
6
,最小公倍数是
12
。)
2
、互质关系
的两个数,最大公因数是1,最小公倍数是它们的乘积。(如,
5
和
7
的最大公因数时
1
,最小公倍数是
5
×
7=35
)
二、一般情况:
1
求最大公因数:
列举法、单列举法、分解质因数法、短除法、除法算式法。
①
列举法
:如,求
18
和
27
的最大公因数
先找出两个数的所有因数
18
的因数有:
1
、
2
、
3
、
6
、
9
、
18
27
的因数有:
1
、
3
、
9
、
27
再找出两个数的公因数:
18
的因数有:
1
、
2
、
3
、
6
、
9
、
18
27
的因数有:
1
、
3
、
9
、
27
1
、
3
、
9
最后找出最大公因数:
9
②
单列举法:
如,求
18
和
27
的最大公因数
先找出其中一个数的因数:
18
的因数有:
1
、
2
、
3
、
6
、
9
、
18
再找这些因数中那些又是另一个数的因数:
1
、
3
、
9
又是
27
的因数
最后找出最大公因数:
9
③短除法
:
3
18
27
3
6
9
除到商是互质数为止,最后把所有的
除数
相乘
2
3
3
×
3=9
④
除法算式法:
用这两个数同时除以公因数,除到最大公因数为止。
18
÷
9
就是
18
和
27
的最大公因数
27
1
3
9
2
、求最小公倍数:
列举法、单列举法、大数翻倍法、分解质因数法或短除法
。
①
列举法
:如,求
18
和
12
的最小公倍数
先按从小到大的顺序找出这两个数的倍数:
18
的倍数:
18
、
36
、
54
、
72
12
的倍数:
12
、
24
、
36
、
48
再找出两个数的最小公倍数:
18
的倍数:
18
、
36
、
54
、
72
12
的倍数:
12
、
24
、
36
、
48
②
单列举法:
如,求
18
和
12
的最小公倍数
先找出一个数的倍数:
18
的倍数有:
18
、
36
、
54
、
72
再按从小到大的顺序找这些倍数中那个又是另一个数的倍数,找出最小公倍数:
36
③大数翻倍法:
如,求
18
和
12
的最小公倍数
把较大的数翻倍(
2
倍开始),每次翻倍后看结果是不是另一个数的倍数,直到找到
最小公倍数为止。
如,求
18
和
12
的最小公倍数。可以把
18
翻倍:
18
×
2=36
,
36
又是
12
的倍数,所以
36
是
18
和
12
的最小公倍数。
④
短除法
:用这两个数同时除以一个质数(要能整除)
如,求
18
和
12
的最小公倍数,先用
18
和
12
同时除以质数
2
,再同时除以质数
3
,除到
两个商是互质数(公因数只有
1
)为止。
2
18
12
3
除数
商
除到商是互质数为止,最后把所有的
除数和商
相乘
Ⅶ 怎么找最小公因数
最小公倍数:
可以使用整除法.
一直除到两个数互质,那么所有除数的乘积即最大公约数
而最小公倍数则是所有的因子,商相乘
例如64,40
2 |64 40 除以2,
2 |32 20 商32,20
2 |16 10 继续除以2,商16,10
|8 5 继续除以2,商8,5
8,5互质,所以不能再除了
显然,2*2*2 是最小公约数,
最小公倍数2*2*2*8*5=320
和换成多因子相乘是一样的
64=2*2*2*2*2*2
40=2*2*2*5
最小公倍数2*2*2*8*5=320