編寫該程序的整體思路:分別定義最大公約數函數和最小公倍數函數,然后再main函數里面調用它。C語言實現代碼如下:
專注于為中小企業提供網站設計制作、成都網站設計服務,電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業赤壁免費做網站提供優質的服務。我們立足成都,凝聚了一批互聯網行業人才,有力地推動了上1000家企業的穩健成長,幫助中小企業通過網站建設實現規模擴充和轉變。
#includestdio.h
#includemath.h
int?fun_gy(int,int); ?//聲明最大公約數函數
int?fun_gb(int,int); ?//聲明最小公倍數函數
main()
{
int?a,b,gy,gb;
printf("輸入兩個整數:\n");
scanf("%d%d",a,b);
gy=fun_gy(a,b); ? //調用最大公約數函數
gb=fun_gb(a,b); ?//調用最小公倍數函數
printf("最大公約數是:%d\n最小公倍數是:%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;
}
程序運行結果:
擴展資料:
這里涉及到了最大公約數和最小公倍數的計算方法:
我們知道兩個整數的最小公倍數等于他們的乘積除以他們的最大公約數。所以關鍵還是最大公約數的計算。
輾轉相除法(求最大公約數):
假設求a,b的最大公約數,則:
(1)a除以b取余得c,若c=0,則b即為兩數的最大公約數,輸出,結束。
(2)若c? != 0,則將b賦給a,c賦給b再返回上一步操作,繼續執行。
例如,求30和98的最大公約數,過程如下:
90%30 = 8;
30%8 = 6;
8%6 = 2;
6%2 = 0;
所以最大公約數為2。
最大公約數:枚舉法,輾轉相除法;最小公倍數:兩數乘積除以最大公約數即可。
#includestdio.h
#includemath.h
int?fun_gy(int,int); ?//聲明最大公約數函數
int?fun_gb(int,int); ?//聲明最小公倍數函數
main()
{
int?a,b,gy,gb;
printf("輸入兩個整數:\n");
scanf("%d%d",a,b);
gy=fun_gy(a,b); ? //調用最大公約數函數
gb=fun_gb(a,b); ?//調用最小公倍數函數
printf("最大公約數是:%d\n最小公倍數是:%d\n",gy,gb);
if(x%i==0y%i==0)
break;
兩個整數的最大公約數
* 兩數各分解質因數,然后取出同樣有的質因數乘起來
*輾轉相除法(擴展版)
和最小公倍數(lcm)的關系:
gcd(a, b) * lcm(a, b) = ab
a與b有最大公約數,
兩個整數的最大公因子可用于計算兩數的最小公倍數,或分數化簡成最簡分數。
兩個整數的最大公因子和最小公倍數中存在分配律:
* gcd(a, lcm(b, c)) = lcm(gcd(a, b), gcd(a, c))
* lcm(a, gcd(b, c)) = gcd(lcm(a, b), lcm(a, c))
在坐標里,將點(0, 0)和(a, b)連起來,通過整數坐標的點的數目(除了(0, 0)一點之外)就是gcd(a, b)。
以上內容參考:百度百科-最大公約數
#include stdio.h
/* 函數聲明 */
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;
}/* 請在此處完成你的程序 */
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;
}
/*最小公倍數,和最小公約數求法*/
/* r=a%b;
int n=a*b;
while(r!=0)/*r不等于0就執行循環體//輾轉相除法
有兩整數a和b:
① a%b得余數c
② 若c=0,則b即為兩數的最大公約數
③ 若c≠0,則a=b,b=c,再回去執行①
{
a=b;
b=r;
r=a%b;
}
printf("%d,%d\n",b,n/b);//兩個數的積除以最大公約數就是最小公倍數*/
當前標題:最小公倍數C語言函數聲明 最小公倍數 c語言
瀏覽路徑:http://vcdvsql.cn/article20/dooojjo.html
成都網站建設公司_創新互聯,為您提供面包屑導航、搜索引擎優化、域名注冊、網站制作、用戶體驗、電子商務
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯