本文目錄一覽:
c語言求最小公倍數的方法
1、對於輸入的兩個正整數m和n每次輸入的大小順序可能不同,為了使程序具有一般性,首先對整數所m和n進行大小排序,規定變數m中存儲大數、變數n中存儲小數。
C語言
2、輸入的兩個數,大數m是小數n的倍數,那麼大數m即為所求的最小公倍數;若大數m不能被小數n整除則需要尋找一個能同時被兩數整除的自然數。
從大數m開始依次向後遞增直到找到第一個能同時被兩數整除的數為止,所以循環變數i的初值為尋找第一個能同時被兩整數整除的自然數,並將其輸出。需要注意的是,在找到第一個滿足條件的i值後,循環沒必要繼續下去,所以用break來結束循環。
3、在上面的分析過程中沒有提到循環變數的終止條件,因i的最大值不能確定,像這種終止條件不確定的情況如何來表示?方法有兩種,第一,可以把判定條件表示成循環變數滿足的基本條件,如本例終止條件可表示成i0;第二,終止條件省略不寫,利用循環體中的語句結束循環,如在找到第一個滿足條件的自然數時利用break語句結束循環。
程序
c語言最小公倍數怎麼求
【利用C語言求最小公倍數主要用到if
whie循環】
例子如下:
直接編譯,程序輸出結果中任意輸入兩個數,如5和8,然後按回車,結果如下圖所示:
兩個或多個整數公有的倍數叫做它們的公倍數,其中除0以外最小的一個公倍數就叫做這幾個整數的最小公倍數。
用C語言編寫程序求兩個數的最小公倍數,並輸出
如圖使用輾轉相除法求最小公倍數:
方法步驟:
一、打開VC2010(或其他C語言編譯器),新建項目-選擇Win32為控制台應用程序-命名-確定
二、選擇源文件-添加-新建項
三、選擇C++文件-命名.c-添加
四、輸入如下程序
#include stdio.h
int main()
{
int a,b,A,B;
int lol,lpl;
printf (“輸入兩個整數:\n”);
scanf (“%d%d”,a,b);
A=a;
B=b;
if(B)
while((A %= B) (B %= A));
lol = A+B;
lpl = a*b/lol;
printf (“最小公倍數為:%d\n”, lpl);
return 0;
}
五、按鍵Ctrl+F5開始執行(不調試),輸入兩個整數之間用空格隔開,回車即可得到兩個整數的最小公倍數
擴展資料:
輾轉相除法, 又名歐幾里德演算法(Euclidean algorithm),是求最大公約數的一種方法。
它的具體做法是:用較大數除以較小數,再用出現的餘數(第一餘數)去除除數,再用出現的餘數(第二餘數)去除第一餘數,如此反覆,直到最後餘數是0為止。如果是求兩個數的最大公約數,那麼最後的除數就是這兩個數的最大公約數。
兩個數的最大公約數是指能同時整除它們的最大正整數。
設兩數為a、b(a2b),求a和b最大公約數(a,b)的步驟如下:
(1)用a除以b(a2b),得a÷b=q..n(0≤n)。
(2)若rn=0,則(a,b)=b;
(3)若r10,則再用b除以n,得b÷n=q..2(0sr2)
(4)若r2=0,則(a,b)=rn;若r20,則繼續用r1除以r2,.…,如此下去,直到能整除為止。
其最後一個餘數為0的除數即為(a,b)的最大公約數。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/180033.html