請你談談最大公約數或最小公倍數在生活中的應用

2021-03-03 21:27:10 字數 5577 閱讀 8756

1樓:筱月竹憐

例題:

用長5cm,寬3cm的長方形硬紙

片擺成一個正方形(中間無空隙)內,至少要用幾個長方形硬紙片?

分析:多個長方形擺成正方形,所以正方形是總體,長方形是部分。題目告訴你了長方形的長與寬,即告訴了部分,求正方形,即求總體,所以用最小公倍數解題。

具體分析:由於拼擺後正好一個正方形,所以正方形的邊長必須是長方形的長與寬的公倍數,又因為要用最少的長方形來擺,所以正方形的邊長一定是最小的公倍數。

〔5,3〕=15 cm------這就是正方形的邊長,(15÷5)×(15÷3)=15(個)長方形個數。

如何用最大公約數和最小公倍數解決常見的問題

2樓:最愛秋天的傳說

怎樣用求最大公約數和最小公倍數的方法解答實際問題?

在實際生活中,有些應用題需要用求最大公約數和最小公倍數的方法去解答,用其他解應用題的方法將無濟於事。

例1:將一塊長24釐米,寬18釐米,厚12釐米的長方體木料,鋸成儘可能大的同樣大小的正方體木塊,可以鋸成多少塊?

由於同樣大小的正方體木塊,稜長都必須相等,這個稜長的釐米數,應該是長方體木料長、寬、厚釐米數的公約數,因為要求正方體的木塊儘可能大,也就是要求正方體木塊的稜長儘可能長,所以求的稜長釐米數必然是長方體木料長、寬、厚的最大公約數。

c語言如何求最大公約數和最小公倍數

3樓:**ile灬微光丶

#include

int main()

m=a*b;

c=a%b;

while(c!=0)

printf("最大公約數是

:\n%d\n",b);

printf("最小公倍數是:\n%d\n",m/b);

}擴充套件資料演算法思想

利用格式輸入語句將輸入的兩個數分別賦給 a 和 b,然後判斷 a 和 b 的關係,如果 a 小於 b,則利用中間變數 t 將其互換。

再利用輾轉相除法求出最大公約數,進而求出最小公倍數。最後用格式輸出語句將其輸出。

#include是在程式編譯之前要處理的內容,稱為編譯預處理命令。編譯預處理命令還有很多,它們都以「#」開頭,並且不用分號結尾,所以是c語言的程式語句。

4樓:用著追她

1、首先開啟codeblocks,建立一個新專案。專案語言,選擇「c」, 我們將專案名稱命名為「回maxandmin」。

2、創答建好專案後,我們開啟 「main.c」檔案。

3、完成輸入功能其中m和n是輸入的兩個數,num是將來儲存的最大公約數。num的值是由後面我們定義的函式,來賦值的。

4、要強制使用者輸入正確的數for(;;)表示一個死迴圈 同樣使用while(true)也可達到死迴圈效果。

5、接下來,當使用者輸入合法之後。我們就要寫else的情況了。

6、當得到的餘數r不是0,就表示 m和n之間不是倍數關係。那麼我們將m的值改為n,n中從存取r 再次執行r=m%n 。意思就是,反覆的用餘數取模餘數,直到0位置。

就是n中存的就為最大公因數了。

7、接下來執行,我們輸入 6,3 其中3就是最大公因數,6是最小公倍數。

5樓:

最大公約數用dueuclid求就可以,有性zhi質 ***(a,b) = ***(b,a mod b)int ***(int a,int b)

while(b!=0)/*輾除法答

,直到b為0為止*/

return a;

}最小公倍數就是 a*b/***(a,b)

6樓:blue丶小

dev-cpp 5.4 純c語言環境du,通過編譯:

#include

int max(int a,int b)

int min(int a,int b)

int main()

7樓:刀無極啊

#include

int main()

else

res=dividend%divisor;

while(res!=0)//迴圈體是三條語句,不加大回括號迴圈只執行一答條語句

printf("%d",divisor);

}else

printf("error!\n");

return 0;

}兩數相乘除以最大公約數就是最小公倍數

c語言中如何呼叫函式求最大公約數和最小公倍數

8樓:鍋鋼

先編寫好最大公約數和最小公倍數的函式,如下:

int ***(int a,b) //求最大公約數函式int lcm(int a,b) //求最小公約數函式然後在main()主函式中呼叫***()函式和lcm()函式即可。(注:回答者編寫的兩個函式分別為求兩個數的最大公約數和最小公倍數)。

如有錯誤,請多加原諒。

9樓:3d動畫師

# include

void main()

int fy(int x,int y)

return k;

}int fb(int x,int y)

return i;}

10樓:匿名使用者

#include

int main ()

p=n*m; //先將n和m的乘積儲存在p中, 以便求最小公倍數時用

while (m!=0) //求n和m的最大公約數

printf("hcf=%d\n",n);

是原來兩個整數的乘積

return 0;}

11樓:匿名使用者

1.計算兩個整數的最大公因子(最大公約數)的歐幾里得演算法描述:

輸入:兩個非負整數a,b,且a>=b;

輸出:a,b的最大公因子;

1).當b!=0時,做如下操作:

1.1 令r=a%b,a=b,b=r。

2).返回(a);

2.**如下:

#include

這是本人的csdn地址

12樓:匿名使用者

c語言求最大公約數和最小公

倍數(2010-03-20 22:23:46)**標籤: 雜談 分類: 程式設計

求最大公約數和最小公倍數

假設有兩個數a和b,求a,b的最大公約數和最小公倍數實際上是一個問題,得出這兩個數的最大公約數就可以算出它們的最小公倍數。

最小公倍數的公式是 a*b/m

m為最大公約數

因為a=m*i; b=m*j;

最小公倍數為 m*i*j

那麼,下面就開始計算a和b的最大公約數。

更相損減法:

《九章算術·方田》作分數約簡時,提到求最大公因數方法:反覆把兩數的較大者減去較小者,直至兩數相等,這數就是最大公因數。這方法除了把除法換作減法外,與輾轉相除法完全相同。

例如書中求91和49的最大公因數:

91 > 49, 91 - 49 = 42

49 > 42, 49 - 42 = 7

42 > 7, 42 - 7 = 35

35 > 7, 35 - 7 = 28

28 > 7, 28 - 7 = 21

21 > 7, 21 - 7 = 14

14 > 7, 14 - 7 = 7

7 = 7, 因此91和49的最大公因數是7

輾轉相除法:

輾轉相除法是利用以下性質來確定兩個正整數 a 和 b 的最大公因數的:

若 r 是 a ÷ b 的餘數, 則

***(a,b) = ***(b,r)

a 和其倍數之最大公因數為 a。

另一種寫法是:

a ÷ b,令r為所得餘數(0≤r

若 r = 0,演演算法結束;b 即為答案。

互換:置 a←b,b←r,並返回第一步。

這個演算法可以用遞迴寫成如下:

function ***(a, b)

或純使用迴圈:

function ***(a, b)

return a

}其中「a mod b」是指取 a ÷ b 的餘數。

c語言:

#include

int ***(int a,int b)//最大公約數

printf("greatest ***mon divisor: %d\n", n_cup);

printf("lease ***mon multiple : %d\n", m * n / n_cup);

}else printf("error!\n");

return 0;

}★ 關於輾轉相除法, 搜了一下, 在我國古代的《九章算術》中就有記載,現摘錄如下: 約分術曰:「可半者半之,不可半者,副置分母、子之數,以少減多,更相減損,求其等也。

以等數約之。」 其中所說的「等數」,就是最大公約數。求「等數」的辦法是「更相減損」法,實際上就是輾轉相除法。

輾轉相除法求最大公約數,是一種比較好的方法,比較快。對於52317和75569兩個數,你能迅速地求出它們的最大公約數嗎?一般來說你會找一找公共的使因子,這題可麻煩了,不好找,質因子大。

現在教你用輾轉相除法來求最大公約數。先用較大的75569除以52317,得商1,餘數23252,再以52317除以23252,得商2,餘數是5813,再用23252做被除數,5813做除數,正好除盡得商數4。這樣5813就是75569和52317的最大公約數。

你要是用分解使因數的辦法,肯定找不到。那麼,這輾轉相除法為什麼能得到最大公約數呢?下面我就給大夥談談。

比如說有要求a、b兩個整數的最大公約數,a>b,那麼我們先用a除以b,得到商8,餘數r1:a÷b=q1...r1我們當然也可以把上面這個式子改寫成乘法式:a=bq1+r1------l)如果r1=0,那麼b就是a、b的最大公約數3。

要是r1≠0,就繼續除,用b除以r1,我們也可以有和上面一樣的式子: b=r1q2+r2-------2)如果餘數r2=0,那麼r1就是所求的最大公約數3。為什麼呢?

因為如果2)式變成了b=r1q2,那麼b1r1的公約數就一定是a1b的公約數。這是因為一個數能同時除盡b和r1,那麼由l)式,就一定能整除a,從而也是a1b的公約數。反過來,如果一個數d,能同時整除a1b,那麼由1)式,也一定能整除r1,從而也有d是b1r1的公約數。

這樣,a和b的公約數與b和r1的公約數完全一樣,那麼這兩對的最大公約數也一定相同。那b1r1的最大公約數,在r1=0時,不就是r1嗎?所以a和b的最大公約數也是r1了。

有人會說,那r2不等於0怎麼辦?那當然是繼續往下做,用r1除以r2,......直到餘數為零為止。在這種方法裡,先做除數的,後一步就成了被除數,這就是輾轉相除法名字的來歷吧。

最大公約數和最小公倍數講解及難點分析

最大公約數,都有的且最大的約數 最小公倍數,能整除所有數的最小數。難點?理解好了就行了吧,要具體題目。最大公約數和最小公倍數有什麼區別 最大公約數和最bai小公倍數區別有 du 1 本質不同 最小zhi公約數是幾個數公dao有的內最大約數,最大公倍數容是幾個數公有的最小倍數。同一組數字中,最小公倍數...

VB最大公約數和最小公倍數,利用vb教程來做一個求最小公倍數最大公約數

private subcommand1 click dima asinter,bas integer,ras integer,maxv asinteger,minv asinteger me.cls 最大公約數a val text1.text b val text2.text maxv iif a ...

x,30,45的最大公約數是5,最小公倍數是180,x可能為多少

30和45的最小公倍數是180,則x 45,又因為最大公約數是5,則x 5,x可為5,10,15,20,25,30,35,40,45。但25,35,不被180整除 x 25,35且40約數為5和8,8不被180整除 x 40且15,30,45的最大公約數是15 x 15,30,45且10和45最小公...