基本介紹
性質及特點
適用範圍
計算方法
分解質因數法
45=3*3*5
30=2*3*5
不同的質因數是2。5,3是他們兩者都有的質因數,由於45有兩個3,30隻有一個3,所以計算最低公倍數的時候乘兩個3.
最低公倍數等於2*3*3*5=90
又如計算36和270的最低公倍數
36=2*2*3*3
270=2*3*3*3*5
不同的質因數是5。2這個質因數在36中比較多,為兩個,所以乘兩次;3這個質因數在270個比較多,為三個,所以乘三次。
最低公倍數等於2*2*3*3*3*5=540
20和40的最低公倍數是40
公式法
示例
例題1
例題2
例題3
例題4
例題5
套用實例
編程實現
CoffeeScript
gcd = (a, b) -> # 最大公約數 return gcd b, a if a < b # a,b中如果有一是0,回答另一 if b is 0 then a else gcd a % b scm = (a,b)-> # 求最低公倍數 a * b / gcd(a, b)
C#
public static float minGongBeiShu(intn1,intn2){int temp=Math.Max(n1,n2);n2=Math.Min(n1,n2);//n2中存放兩個數中最小的n1=temp;//n1中存放兩個數中最大的int product=n1*n2;//求兩個數的乘積while(n2!=0){n1=n1>n2?n1:n2;//使n1中的數大於n2中的數int m=n1%n2;n1=n2;n2=m;}return(product/n1);//最低公倍數}
C
#include<stdio.h>int gcd(int a,int b);int lcm(int a,int b);int main(void){int m,n,result_gcd,result_lcm;printf("求兩個數的最大公約數及最低公倍數?\n請輸入你想計算的兩個數:\n");scanf("%d%d",&m,&n);result_gcd=gcd(m,n);result_lcm=lcm(m,n);printf("最大公約數為:%d\n最低公倍數為:%d\n",result_gcd,result_lcm);return 0;}int gcd(int a,int b){int temp;if(a<b){//交換兩個數,使大數放在a上temp=a;a=b;b=temp;}while(b!=0){//利用輾除法,直到b為0為止temp=a%b;a=b;b=temp;}return a;}int lcm(int a,int b){int temp_lcm;temp_lcm=a*b/gcd(a,b);//最低公倍數等於兩數之積除以其最大公約數return temp_lcm;}
C++
#include<iostream>using namespace std;int GCD(int a,int b);int LCM(int a,int b);int main(){int num1,num2,gcd,lcm;cout<<"求兩個數的最大公約數及最低公倍數"<<endl<<endl;cout<<"請輸入兩個數:";cin>>num1>>num2;gcd=GCD(num1,num2);lcm=LCM(num1,num2);//輸出最大公約數和最低公倍數cout<<"最大公約數為:"<<gcd<<endl;cout<<"最低公倍數為:"<<lcm<<endl;system("pause");return 0;}int GCD(int num1,int num2){if(num1%num2==0)return num2;else return GCD(num2,num1%num2);}int LCM(int a,int b){int temp_lcm;temp_lcm=a*b/GCD(a,b);//最低公倍數等於兩數之積除以最大公約數return temp_lcm;}
!gcd()gets the greatest common divisor(i.e.,higest common factor)!lcm()gets the least common multipleprogram gcd_lcminteger::m,nwrite(*,*)'Please input two integers:'read(*,*)m,nwrite(*,*)'They have the greatest common divisor:',gcd(m,n)write(*,*)'They have the least common multiple:',lcm(m,n)containsinteger function lcm(mm,nn)integer,intent(in)::mm,nnlcm=mm*nn/gcd(mm,nn)end function lcm!BLinteger function gcd(mm,nn)integer,intent(in)::mm,nninteger::m,n,r,tm=mmn=nnif(m<n)thent=mm=nn=tendifdo while(r/=0)r=mod(m,n)if(r==0) exitm=nn=rend dogcd=nend function gcdend program gcd_lcm
PASCAL
//1、var a,b,ans:integer;function gcd(a,b:integer):longint;beginif b=0 then gcd:=aelse gcd:=gcd(b,a mod b);end;//2、var a,b,ans:integer;function gcd(a,b:integer):longint;beginreadln(a,b);ans:=(a*b) div gcd(a,b);gcd:=ans;end.
JAVA
Scanner in=new Scanner(System.in); int a=in.nextInt(); int b=in.nextInt(); int c=a*b; if(a<b){ int r=0; r=a;a=b;b=r; } while(true){ int r=a%b; if(r==0){ System.out.println("最低公倍數:"+c/b); break; }else{ a=b; b=r; }}
Python
def gcd(n1,n2): """greatest common divisor function """ return gcd(n2, n1 % n2) if n2 > 0 else n1def lcm(n1,n2): """lowest common multiple function""" return n1 * n2 // gcd(n1, n2)