国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

最大公約數(shù)的三種求法——(C語(yǔ)言)

這篇具有很好參考價(jià)值的文章主要介紹了最大公約數(shù)的三種求法——(C語(yǔ)言)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

如何求解最大公約數(shù),首先了解什么是最大公約數(shù),如果有一個(gè)自然數(shù)a能被自然數(shù)b整除,則稱a為b的倍數(shù),b為a的約數(shù)。幾個(gè)自然數(shù)公有的約數(shù),叫做這幾個(gè)自然數(shù)的公約數(shù)。公約數(shù)中最大的一個(gè)公約數(shù),稱為這幾個(gè)自然數(shù)的最大公約數(shù)。

例: 在2、4、6中,2就是2,4,6的最大公約數(shù)。

再C語(yǔ)言中,有以下三種求法:


方法一:

int main() {
	int a;
	int b;
	printf("請(qǐng)輸入兩個(gè)正整數(shù):");
	scanf("%d %d", &a, &b);
	int i = 0;
	int m = 0;
	for (i = 1; i <= a && i <= b; i++) {
		if (a % i == 0 && b % i == 0) {
			m = i;
		}
	}
	printf("最大公約數(shù)為:%d\n", m);
		return 0;
}

?該方法是將兩個(gè)數(shù)依次對(duì)1開(kāi)始取模,往后++,直到滿足兩個(gè)都對(duì)i取模為0結(jié)束。


方法二:

int main() {
	int a;
	int b;
	printf("請(qǐng)輸入兩個(gè)正整數(shù):");
	scanf("%d %d", &a, &b);
	//找到兩個(gè)數(shù)的較小者
	int min = (a < b ? a : b);
	while (1) {
		if (a % min == 0 && b % min == 0) {
			break;
		}
		min--;
	}
	printf("最大公約數(shù)為:%d\n", min);
	return 0;
}

?該方法是找到兩個(gè)數(shù)的較小者,輸入的兩個(gè)數(shù)依次對(duì)較小者取模,滿足上述條件結(jié)束。


?方法三:

//輾轉(zhuǎn)相除法
int main() {
	int a;
	int b;
	printf("請(qǐng)輸入兩個(gè)正整數(shù):");
	scanf("%d %d", &a, &b);
	int k = 0;
	while (k = a % b) {
		a = b;
		b = k;
	}
	printf("最大公約數(shù)為:%d\n", b);
	return 0;
}

?輾轉(zhuǎn)相除法一般指歐幾里得算法。歐幾里得算法又稱輾轉(zhuǎn)相除法,是指用于計(jì)算兩個(gè)非負(fù)整數(shù)a,b的最大公約數(shù)。那么輾轉(zhuǎn)相除法的原理是什么?

1、 原理:設(shè)兩數(shù)為a、b(ab),用gcd(a,b)表示a,b的最大公約數(shù),r=a(mod b)為a除以b的余數(shù),k為a除以b的商,即a÷b=k。。。。。。。r。輾轉(zhuǎn)相除法即是要證明gcd(a,b)=gcd(b,r)。

2、 第一步:令c=gcd(a,b),則設(shè)a=mc,b=nc。

3、 第二步:根據(jù)前提可知r=a-kb=mc-knc=(m-kn)c。

4、 第三步:根據(jù)第二步結(jié)果可知c也是r的因數(shù)。

5、 第四步:可以斷定m-kn與n互質(zhì)(假設(shè)m-kn=xd,n=yd(d1),則m=kn+xd=kyd+xd=(ky+x)d,則a=mc=(ky+x)cd,b=nc=ycd,則a與b的一個(gè)公約數(shù)cdc,故c非a與b的最大公約數(shù),與前面結(jié)論矛盾),因此c也是b與r的最大公約數(shù)。

6、 從而可知gcd(b,r)=c,繼而gcd(a,b)=gcd(b,r)。

7、 證畢。以上步驟的操作是建立在剛開(kāi)始時(shí)r≠0的基礎(chǔ)之上的。即m與n亦互質(zhì)。

8、 解釋:輾轉(zhuǎn)相除法,又名歐幾里德算法(Euclidean algorithm)乃求兩個(gè)正整數(shù)之最大公因子的算法。它是已知最古老的算法,其可追溯至公元前300年前。

9、 來(lái)源:設(shè)兩數(shù)為a、b(ab),求a和b最大公約數(shù)(a,b)的步驟如下:用a除以b,得a÷b=q。。。。。。r1(0≤r1)。若r1=0,則(a,b)=b;若r1≠0,則再用b除以r1,得b÷r1=q。。。。。。r2(0≤r2)。若r2=0,則(a,b)=r1,若r2≠0,則繼續(xù)用r1除以r2,……如此下去,直到能整除為止。其最后一個(gè)余數(shù)為0的除數(shù)即為(a, b)的最大公約數(shù)。

10、 例如:a=25,b=15,a/b=1。。。。。.10,b/10=1。。。。。.5,10/5=2。。。。。。.0,最后一個(gè)余數(shù)為0d的除數(shù)就是5, 5就是所求最大公約數(shù)。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-434375.html


“只有兩種編程語(yǔ)言:大家抱怨的和沒(méi)人用的?!薄举Z尼·斯特勞斯特魯普(Bjarne Stroustrup)

到了這里,關(guān)于最大公約數(shù)的三種求法——(C語(yǔ)言)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【C語(yǔ)言】?jī)蓚€(gè)整數(shù)最大公約數(shù)和最小公倍數(shù)

    輸入兩個(gè)整數(shù),求這兩個(gè)數(shù)的最大公約數(shù)和最小公倍數(shù)。 第一種求法(輾轉(zhuǎn)相除法)這個(gè)方法代碼較潔簡(jiǎn),我也比較推薦就是剛開(kāi)始有點(diǎn)比較難了解。 首先,來(lái)看看怎么求最大公約數(shù),求最大公約數(shù)需要用到 歐幾里得算法 ,也稱為輾轉(zhuǎn)相除法。算法就是用兩數(shù)中較大的數(shù)

    2024年02月04日
    瀏覽(26)
  • 【C語(yǔ)言】輾轉(zhuǎn)相除法求最大公約數(shù)(詳解)

    【C語(yǔ)言】輾轉(zhuǎn)相除法求最大公約數(shù)(詳解)

    輾轉(zhuǎn)相除法(又稱歐幾里德算法)是一種用于求解兩個(gè)整數(shù)的最大公約數(shù)的方法。本文將使用C語(yǔ)言來(lái)實(shí)現(xiàn)輾轉(zhuǎn)相除法,并對(duì)其原理進(jìn)行解釋。 輾轉(zhuǎn)相除法的原理非常簡(jiǎn)單。假設(shè)有兩個(gè)整數(shù)a和b,其中a b。通過(guò)對(duì)a除以b求余數(shù),得到余數(shù)r1。然后把b除以r1求余數(shù),得到余數(shù)r2。如

    2024年02月07日
    瀏覽(21)
  • C語(yǔ)言經(jīng)典算法之Euclidean算法求最大公約數(shù)

    目錄 前言 A.建議 B.簡(jiǎn)介 一 代碼實(shí)現(xiàn) 二 時(shí)空復(fù)雜度 A.循環(huán)實(shí)現(xiàn) a.時(shí)間復(fù)雜度(Time Complexity): b.空間復(fù)雜度(Space Complexity): B.遞歸實(shí)現(xiàn) a.時(shí)間復(fù)雜度(Time Complexity): b.空間復(fù)雜度(Space Complexity): 三 優(yōu)缺點(diǎn) A.循環(huán)實(shí)現(xiàn) a.優(yōu)點(diǎn): b.缺點(diǎn): c.總結(jié): B.遞歸實(shí)現(xiàn) a.優(yōu)點(diǎn):

    2024年03月26日
    瀏覽(19)
  • 【c語(yǔ)言】—求最大公約數(shù)和最小公倍數(shù)多種方法

    目錄 一.求最大公約數(shù) 1.枚舉法求最大公約數(shù) 2.輾轉(zhuǎn)相除法 二.求最小公倍數(shù) 1.枚舉法求最小公倍數(shù) 2.簡(jiǎn)易法 3.公式法 思路:先求兩個(gè)數(shù)中的最小值,最大公約數(shù)不可能大于兩個(gè)數(shù)的最小數(shù) 比如6和18,最大公約數(shù)就是6 再如3和9,最大公約數(shù)就是3 然后再?gòu)?開(kāi)始循環(huán)遍歷到最小

    2024年02月08日
    瀏覽(22)
  • C語(yǔ)言入門——求最大公約數(shù)(2種方法超詳細(xì))

    C語(yǔ)言入門——求最大公約數(shù)(2種方法超詳細(xì))

    基本介紹: 最大公約數(shù)(greatest common divisor,簡(jiǎn)寫(xiě)為 gcd ;或highest common factor,簡(jiǎn)寫(xiě)為hcf),指某幾個(gè)整數(shù)共有因子中最大的一個(gè)。 最大公約數(shù) 能夠整除一個(gè)整數(shù)的整數(shù)稱為其的約數(shù)(如5是10約數(shù)); 能夠被一個(gè)整數(shù)整除的整數(shù)稱為其的倍數(shù)(如10是5的倍數(shù)); 如果一個(gè)數(shù)既

    2024年02月08日
    瀏覽(18)
  • 【C語(yǔ)言】一篇博客帶你弄懂最大公約數(shù)和最小公倍數(shù)

    【C語(yǔ)言】一篇博客帶你弄懂最大公約數(shù)和最小公倍數(shù)

    我們?cè)贑語(yǔ)言的學(xué)習(xí)中,經(jīng)常會(huì)遇到這樣一些數(shù)學(xué)題目,良好掌握這些題目有利于我們理解和學(xué)習(xí)C語(yǔ)言,話不多說(shuō),直接進(jìn)入主題 最大公約數(shù): 首先我們舉個(gè)例子,比如12 和16,12的約數(shù)有(1,2 ,3,4,6,12),16的約數(shù)有(1,2,4,8,16)公約數(shù)就是兩個(gè)數(shù)共同的約數(shù),(1,2,4)而公約數(shù)

    2024年02月04日
    瀏覽(18)
  • C語(yǔ)言——輸入兩個(gè)正整數(shù)m和n,求其最大公約數(shù)和最小公倍數(shù)

    C語(yǔ)言——輸入兩個(gè)正整數(shù)m和n,求其最大公約數(shù)和最小公倍數(shù)

    目錄 1.最大公約數(shù)求法 1.1輾轉(zhuǎn)相除法 1.2相減法 2.最小公倍數(shù)求法 3.代碼實(shí)現(xiàn) 4.結(jié)果展示 1.1輾轉(zhuǎn)相除法 設(shè)有兩整數(shù)a和b: a%b得余數(shù)c 若c==0,則b即為兩數(shù)的最大公約數(shù) 若c!=0,則a=b,b=c,再回去執(zhí)行第一步。 例如:求27和15的最大公約數(shù)過(guò)程為: 27÷15 余12 15÷12 余3 12÷3 余0 因

    2024年02月01日
    瀏覽(14)
  • C語(yǔ)言——輸入兩個(gè)正整數(shù) m 和 n。求其最大公約數(shù)和最小公倍數(shù)。

    1、首先,程序通過(guò)printf函數(shù)提示用戶輸入兩個(gè)正整數(shù)m和n,然后使用scanf函數(shù)接收用戶的輸入并將值分別存儲(chǔ)到變量m和n中。 2、接下來(lái),程序進(jìn)入一個(gè)for循環(huán),從1開(kāi)始遍歷直至i等于較小的數(shù)(m或n),檢查當(dāng)前數(shù)值i是否能同時(shí)整除m和n。如果i既能被m整除又能被n整除(即滿足

    2024年02月03日
    瀏覽(21)
  • C語(yǔ)言:給定兩個(gè)數(shù),求這兩個(gè)數(shù)的最大公約數(shù)(新思路:輾轉(zhuǎn)相除法)

    C語(yǔ)言:給定兩個(gè)數(shù),求這兩個(gè)數(shù)的最大公約數(shù)(新思路:輾轉(zhuǎn)相除法)

    從鍵盤(pán) 輸入兩個(gè)數(shù) , 求 這 兩個(gè)數(shù) 的 最大公約數(shù) 。 ? ? ? ? ? ? ? ? ? ?? ?========================================================================= ? ? ? ? ? ? ? ? ? ? ? ? (一). 生成 相關(guān)變量 ; 從鍵盤(pán) 輸入兩個(gè)數(shù) ; 再 使用 三目操作符(條件操作符) 找出 較小值 。 ? ? ? ?

    2024年02月09日
    瀏覽(17)
  • C語(yǔ)言--編寫(xiě)兩個(gè)函數(shù),分別求兩個(gè)整數(shù)的最大公約數(shù)和最小公倍數(shù),再主函數(shù)中輸入兩個(gè)整數(shù),調(diào)用它們后輸出結(jié)果。

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包