幾種求最小公約數(shù)和最大公倍數(shù)的思考(C語(yǔ)言實(shí)現(xiàn))-創(chuàng)新互聯(lián)

首先我們得先搞清楚大公約數(shù)和最小公倍數(shù)的定義.

創(chuàng)新互聯(lián)公司是一家集做網(wǎng)站、網(wǎng)站制作、網(wǎng)站頁(yè)面設(shè)計(jì)、網(wǎng)站優(yōu)化SEO優(yōu)化為一體的專業(yè)網(wǎng)站設(shè)計(jì)公司,已為成都等多地近百家企業(yè)提供網(wǎng)站建設(shè)服務(wù)。追求良好的瀏覽體驗(yàn),以探求精品塑造與理念升華,設(shè)計(jì)最適合用戶的網(wǎng)站頁(yè)面。 合作只是第一步,服務(wù)才是根本,我們始終堅(jiān)持講誠(chéng)信,負(fù)責(zé)任的原則,為您進(jìn)行細(xì)心、貼心、認(rèn)真的服務(wù),與眾多客戶在蓬勃發(fā)展的市場(chǎng)環(huán)境中,互促共生。

大公約數(shù):兩個(gè)或多個(gè)整數(shù)共有約數(shù)中大的一個(gè),例如,6和9的大公約數(shù)是3.

最小公倍數(shù):兩個(gè)或多個(gè)整數(shù)公有的倍數(shù)叫做它們的公倍數(shù),其中除0以外最小的一個(gè)公倍數(shù)就叫做這幾個(gè)整數(shù)的最小公倍數(shù),例如,6和21的最小公倍數(shù)是42.

一.輾轉(zhuǎn)相除法.

有兩個(gè)整數(shù)a和b

1.a%b = temp; 若temp=0;此時(shí)b就是a和b的大公約數(shù)

2.若b≠0,則a=b;b=temp;繼續(xù)a%b的操作

3.例如.21和6,? 21%6余3; 6%3余0;此時(shí)3就是他們的大公約數(shù)?

4.得到大公約數(shù)后,用這兩個(gè)數(shù)的乘積除以他們的大公約數(shù)就得到了最小公倍數(shù),例如,6和21,大公約數(shù)為3, (6*21)/3 = 42; 42就是他們的最小公倍數(shù).話不多說(shuō)上代碼

#define _CRT_SECURE_NO_WARNINGS 1
#include//輾轉(zhuǎn)相除法,乘積除以大公因數(shù)得到最小公倍數(shù)
int fib(int a, int b)
{
	while (a*b!=0)
	{
		int tmp = a % b;
		a = b;
		b = tmp;
	}
	//printf("%d %d\n", a, b);
	return a;
	
}
int main()
{
	int a = 0;
	int b = 0;
	printf("請(qǐng)輸入兩個(gè)數(shù):>\n");
	scanf("%d %d", &a, &b);
	int sum = a * b;
	int m = fib(a,b);
	
	printf("大公約數(shù) = %d\n", a);

	printf("最小公倍數(shù) = %d\n",sum/m);

	return 0;
}

運(yùn)行結(jié)果

二.更象相減

1. 若a >b,則 a = a - b;

2. 若a< b,則 b = b - a;

3. 若 a = b,則 a(b)即為兩數(shù)的大公約數(shù)

4.若 a ≠ b,則繼續(xù)執(zhí)行第一步操作。

5.例如21和6.? 21-6=15(15>6); 15-6=9(9>6); 9-6=3(3<6); 6-3=3(3=3)//? 3就是這兩個(gè)數(shù)的大公約數(shù),同理,同樣的辦法可以得到兩個(gè)數(shù)的最小公倍數(shù),上代碼

int fib(int a, int b)
{
	while (a != b)
	{
		if (a >b)
		{
			a = a - b;
		}
		else
		{
			b = b - a;
		}
	}
	return a;
}
int main()
{
	int a = 0;
	int b = 0;
	printf("請(qǐng)輸入兩個(gè)數(shù);>\n");
	scanf("%d %d", &a, &b);
	int sum = a * b;

	int m = fib(a, b);

	printf("大公約數(shù) = %d\n", m);
	printf("最小公倍數(shù) = %d\n", sum/m);


	return 0;
}

運(yùn)行結(jié)果

三.硬算(窮舉).

有兩個(gè)整數(shù)a和b:

從1開始,讓a和b同時(shí)除以,直到某個(gè)數(shù)同時(shí)滿足被a和b整除,此時(shí)這個(gè)被整除的數(shù)字就是大公約數(shù),同樣道理,可以獲得最小公約數(shù).上代碼

int fib(int a, int b)
{
	
	int n = 0;
	for (int i = 1; i< b; i++)//i小于a和b任意一個(gè)都行
	{
		if ((a % i == 0) && (b % i == 0))
		{
			n = i;
		}
	}
	return n;
}
int main()
{
	int a = 0;
	int b = 0;
	printf("請(qǐng)輸入兩個(gè)數(shù);>\n");
	scanf("%d %d", &a, &b);
	int sum = a * b;

	int m = fib(a, b);

	printf("大公約數(shù) = %d\n", m);
	printf("最小公倍數(shù) = %d\n", sum/m);


	return 0;
}

運(yùn)行結(jié)果

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧

當(dāng)前名稱:幾種求最小公約數(shù)和最大公倍數(shù)的思考(C語(yǔ)言實(shí)現(xiàn))-創(chuàng)新互聯(lián)
鏈接地址:http://bm7419.com/article8/goiop.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供用戶體驗(yàn)、網(wǎng)站設(shè)計(jì)公司、關(guān)鍵詞優(yōu)化、網(wǎng)站排名網(wǎng)站維護(hù)、自適應(yīng)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司