最小公倍數演算法
演算法有很多啊
最簡單的 暴力求
比如
intfunc(inta,intb)
{
intr;
for(r=a<b?b:a;;r++)
if(r%a==0&&r%b==0)break;
returnr;
}
還有求所有質因子 然後剔除相同的 乘起來 標準的數學演算法
或者用輾轉相除求最大公約數 然後用乘積去除
方法很多的
2. 最小公倍數的最簡便演算法
先求最大公約數,各個數除這個最大公約數所得的各個數相乘再乘以這個最大公約數可得這幾個數的最小公倍數
3. 最小公倍數是怎麼算出來的
摘要 你好,很高興為你解答!
4. 求最小公倍數的最佳演算法
#include<stdio.h>
#include<stdlib.h>
int gcd(int m,int n)
{
return n?gcd(n,m%n):m;
}
int main()
{
int num1,num2;
puts("請輸入兩個數");
scanf("%d %d",&num1,&num2);
int g=gcd(num1,num2);
printf("兩個數的最大公約數是%d,\n最小公倍數是%d\n",g,num1*num2/g);
system("PAUSE");
}
5. 怎麼計算最小公倍數
最小公倍數
最小公倍數(Least
Common
Multiple,縮寫L.C.M.),如果有一個自然數a能被自然數b整除,則稱a為b的倍數,b為a的約數,對於兩個正整數來說,指該兩數共有倍數中最小的一個。計算最小公倍數時,通常會藉助最大公約數來輔助計算。
例如,十天乾和十二地支混合稱呼一陰歷年,干支循環回歸同一名稱的所需時間,就是
12
和
10
的最小公倍數,即是
60
——一個「甲子」。
對分數進行加減運算時,要求兩數的分母相同才能計算,故需要通分;假如令兩個分數的分母通分成最小公倍數,計算量便最低。
方法1:短除法
步驟:
一、找出兩數的最小公約數,列短除式,用最小約倍數去除這兩個數,得二商;
二、找出二商的最小公約數,用最小公約數去除二商,得新一級二商;
三、以此類推,直到二商為互質數;
四、將所有的公約數及最後的二商相乘,所得積就是原二數的最小公倍數。
例:求48和42的最小公倍數
解:
48與42的最小公約數為2
48/2=24;42/2=21;24與21的最大公約數為3
24/3=8;21/3=7;8和7互為質數
2*3*8*7=336
方法2:質因數分解
舉例:12和27的最小公倍數
12=2*2×3
27=3*3*3
必須用裡面數字中的最大次方者,像本題有3和3的立方,所以必須使用3的立方(也就是3*3*3),不能使用3
所以:
2*2×3*3*3=4×27=108
兩數的最小公倍數是108
方法3:藉助最大公約數求最小公倍數
步驟:
一、利用輾除法或其它方法求得最大公約數;
二、
最小公倍數等於兩數之積除以最大公約數。
舉例:12和8的最大公約數為4
12*8/4=24
兩數的最小公倍數是24
註:公約數又稱公因數。
6. 最小公倍數更簡單的演算法
x和y是兩個未知數,然後用r作為臨時的變數,初始賦值為其中一個未知數r的值,然後不斷+x,也就是得到x的不同倍數,沒得到一個便判斷是否整除y。得到的第一個能夠整除y的就是其最小公倍數。