日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

用c语言求最大公约数的流程图,如何用c语言求最大公约数和最小公倍数

發布時間:2024/8/23 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 用c语言求最大公约数的流程图,如何用c语言求最大公约数和最小公倍数 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

a=g_cd(m,n);

if (m>n) //最小公倍數=較大的數*(較小的數/最大公約數)

{

b=n;

b/=a;

return m*b;

}

else

{

b=m;

b/=a;

return n*b;

}

}

main()

{

int p,r,n,m,temp;

printf("Please enter 2 numbers n,m:");

scanf("%d,%d",&n,&m);//輸入兩個正整數.

if(n

在m中.

{temp=n;

n=m;

m=temp;

}

p=n*m;//P是原來兩個數n,m的乘積.

while(m!=0)//求兩個數n,m的最大公約數.

{

r=n%m;

n=m;

m=r;

}

printf("Its MAXGongYueShu:%d\n",n);//打印最大公約數.

printf("Its MINGongBeiShu:%d\n",p/n);打印最小公倍數.

基本原理如下:

用歐幾里德算法(輾轉相除法)求兩個數的最大公約數的步驟如下:

先用小的一個數除大的一個數,得第一個余數;

再用第一個余數除小的一個數,得第二個余數;

又用第二個余數除第一個余數,得第三個余數;

這樣逐次用后一個數去除前一個余數,直到余數是0為止。那么,最后一個除數就是所求的最大公約數(如果最后的除數是1,那么原來的兩個數是互質數)。

例如求1515和600的最大公約數,

第一次:用600除1515,商2余315;

第二次:用315除600,商1余285;

第三次:用285除315,商1余30;

第四次:用30除285,商9余15;

第五次:用15除30,商2余0。

1515和600的最大公約數是15。

兩個正整數的最小公倍數=兩個數的乘積÷兩個數的最大公約數

由于兩個數的乘積等于這兩個數的最大公約數與最小公倍數的積。這就是說,求兩個數的最小公倍數,可以先求出兩個數的最大公約數,再用這兩個數的最大公約數去除這兩個數的積,所得的商就是兩個數的最小公倍數。

例 求105和42的最小公倍數。

因為105和42的最大公約數是21,

105和42的積是4410,4410÷21=210,

所以,105和42的最小公倍數是210。

#include

void main()

{

int i,j,k;

long m;

printf("please input i,j:\n");

scanf("%d%d",&i,&j);

m=i*j;

if(i

{i=i^j;

j=j^i;

i=i^j;}

while(i%j!=0)

{k=i%j;

i=j;

j=k;}

printf("gcd=%d,lcm=%ld\n",j,m/j);

}

給,已經編譯運行確認:

#include

#include

int main()

{

int p,r,n,m,temp;

printf("Please enter 2 numbers n,m:");

scanf("%d %d",&n,&m);//輸入兩個正整數.

if(n

{

temp=n;

n=m;

m=temp;

}

p=n*m;//P是原來兩個數n,m的乘積.

while(m!=0)//求兩個數n,m的最大公約數.

{

r=n%m;

n=m;

m=r;

}

printf("最大公約數為: %d\n",n);//打印最大公約數.

printf("最小公倍數為: %d\n&qu

總結

以上是生活随笔為你收集整理的用c语言求最大公约数的流程图,如何用c语言求最大公约数和最小公倍数的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。