編寫該程序的整體思路:分別定義最大公約數(shù)函數(shù)和最小公倍數(shù)函數(shù),然后再main函數(shù)里面調(diào)用它。C語(yǔ)言實(shí)現(xiàn)代碼如下:
專注于為中小企業(yè)提供網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站設(shè)計(jì)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)赤壁免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了上1000家企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過(guò)網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
#includestdio.h
#includemath.h
int?fun_gy(int,int); ?//聲明最大公約數(shù)函數(shù)
int?fun_gb(int,int); ?//聲明最小公倍數(shù)函數(shù)
main()
{
int?a,b,gy,gb;
printf("輸入兩個(gè)整數(shù):\n");
scanf("%d%d",a,b);
gy=fun_gy(a,b); ? //調(diào)用最大公約數(shù)函數(shù)
gb=fun_gb(a,b); ?//調(diào)用最小公倍數(shù)函數(shù)
printf("最大公約數(shù)是:%d\n最小公倍數(shù)是:%d\n",gy,gb);
}
int?fun_gy(int?x,int?y)
{
int?z,i;
if(xy)
z=sqrt(y);
else
z=sqrt(x);
for(i=z;i=1;i--)
{
if(x%i==0y%i==0)
break;
}
return?i;
}
int?fun_gb(int?x,int?y)
{
int?z,i;
z=x*y;
for(i=x;i=z;i++)
{
if(i%x==0i%y==0)
break;
}
return?i;
}
程序運(yùn)行結(jié)果:
擴(kuò)展資料:
這里涉及到了最大公約數(shù)和最小公倍數(shù)的計(jì)算方法:
我們知道兩個(gè)整數(shù)的最小公倍數(shù)等于他們的乘積除以他們的最大公約數(shù)。所以關(guān)鍵還是最大公約數(shù)的計(jì)算。
輾轉(zhuǎn)相除法(求最大公約數(shù)):
假設(shè)求a,b的最大公約數(shù),則:
(1)a除以b取余得c,若c=0,則b即為兩數(shù)的最大公約數(shù),輸出,結(jié)束。
(2)若c? != 0,則將b賦給a,c賦給b再返回上一步操作,繼續(xù)執(zhí)行。
例如,求30和98的最大公約數(shù),過(guò)程如下:
90%30 = 8;
30%8 = 6;
8%6 = 2;
6%2 = 0;
所以最大公約數(shù)為2。
最大公約數(shù):枚舉法,輾轉(zhuǎn)相除法;最小公倍數(shù):兩數(shù)乘積除以最大公約數(shù)即可。
#includestdio.h
#includemath.h
int?fun_gy(int,int); ?//聲明最大公約數(shù)函數(shù)
int?fun_gb(int,int); ?//聲明最小公倍數(shù)函數(shù)
main()
{
int?a,b,gy,gb;
printf("輸入兩個(gè)整數(shù):\n");
scanf("%d%d",a,b);
gy=fun_gy(a,b); ? //調(diào)用最大公約數(shù)函數(shù)
gb=fun_gb(a,b); ?//調(diào)用最小公倍數(shù)函數(shù)
printf("最大公約數(shù)是:%d\n最小公倍數(shù)是:%d\n",gy,gb);
if(x%i==0y%i==0)
break;
兩個(gè)整數(shù)的最大公約數(shù)
* 兩數(shù)各分解質(zhì)因數(shù),然后取出同樣有的質(zhì)因數(shù)乘起來(lái)
*輾轉(zhuǎn)相除法(擴(kuò)展版)
和最小公倍數(shù)(lcm)的關(guān)系:
gcd(a, b) * lcm(a, b) = ab
a與b有最大公約數(shù),
兩個(gè)整數(shù)的最大公因子可用于計(jì)算兩數(shù)的最小公倍數(shù),或分?jǐn)?shù)化簡(jiǎn)成最簡(jiǎn)分?jǐn)?shù)。
兩個(gè)整數(shù)的最大公因子和最小公倍數(shù)中存在分配律:
* gcd(a, lcm(b, c)) = lcm(gcd(a, b), gcd(a, c))
* lcm(a, gcd(b, c)) = gcd(lcm(a, b), lcm(a, c))
在坐標(biāo)里,將點(diǎn)(0, 0)和(a, b)連起來(lái),通過(guò)整數(shù)坐標(biāo)的點(diǎn)的數(shù)目(除了(0, 0)一點(diǎn)之外)就是gcd(a, b)。
以上內(nèi)容參考:百度百科-最大公約數(shù)
#include stdio.h
/* 函數(shù)聲明 */
int common_multiple (int number1, int number2);
int main ()
{
int multiple, number1 = 24, number2 = 16;
multiple = common_multiple(number1, number2);
printf("%d", multiple);
return 0;
}/* 請(qǐng)?jiān)诖颂幫瓿赡愕某绦?*/
int common_multiple (int number1, int number2)
{
int r,t;
r=number1%number2;
t=number1*number2;
while(r!=0)
{
number1=number2;
number2=r;
r=number1%number2;
}
t=t/number2;
return t;
}
/*最小公倍數(shù),和最小公約數(shù)求法*/
/* r=a%b;
int n=a*b;
while(r!=0)/*r不等于0就執(zhí)行循環(huán)體//輾轉(zhuǎn)相除法
有兩整數(shù)a和b:
① a%b得余數(shù)c
② 若c=0,則b即為兩數(shù)的最大公約數(shù)
③ 若c≠0,則a=b,b=c,再回去執(zhí)行①
{
a=b;
b=r;
r=a%b;
}
printf("%d,%d\n",b,n/b);//兩個(gè)數(shù)的積除以最大公約數(shù)就是最小公倍數(shù)*/
當(dāng)前標(biāo)題:最小公倍數(shù)C語(yǔ)言函數(shù)聲明 最小公倍數(shù) c語(yǔ)言
瀏覽路徑:http://aaarwkj.com/article20/dooojjo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供面包屑導(dǎo)航、搜索引擎優(yōu)化、域名注冊(cè)、網(wǎng)站制作、用戶體驗(yàn)、電子商務(wù)
聲明:本網(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)