首先我們得先搞清楚大公約數(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)
猜你還喜歡下面的內(nèi)容