用C語言求最大公約數,c語言如何求最大公約數和最小公倍數

2021-03-27 21:47:21 字數 3968 閱讀 2283

1樓:很多很多

1、新建一個c語言源程式,這裡使用visual c++6.0的軟體:

2、從鍵盤中輸入兩個正整數a和b。取兩個數a,b中的較小值存放到變數n中。從兩個數a和b中的較小數開始逐個減小1,尋找能整除a和b的整數,第一個找到的整數即整數a和b的最大公約數,最後將找到的結果輸出即可完成程式的編寫:

3、對源程式編譯執行,測試輸入4、6,得到最大公約數2說明程式是正確的,以上就是用c語言求最大公約數的過程:

2樓:東風冷雪

#include

int zdg(int n);

int main()

int zdg(int n)

return m;}

3樓:水墨塵君

#include

void main()

{int m,n,r,t;

scanf("%d,%d",&m,&n);

if(m

如果有疑問

,歡迎私聊我

c語言如何求最大公約數和最小公倍數

4樓:**ile灬微光丶

#include

int main()

m=a*b;

c=a%b;

while(c!=0)

printf("最大公約數是

:\n%d\n",b);

printf("最小公倍數是:\n%d\n",m/b);

}擴充套件資料演算法思想

利用格式輸入語句將輸入的兩個數分別賦給 a 和 b,然後判斷 a 和 b 的關係,如果 a 小於 b,則利用中間變數 t 將其互換。

再利用輾轉相除法求出最大公約數,進而求出最小公倍數。最後用格式輸出語句將其輸出。

#include是在程式編譯之前要處理的內容,稱為編譯預處理命令。編譯預處理命令還有很多,它們都以「#」開頭,並且不用分號結尾,所以是c語言的程式語句。

5樓:用著追她

1、首先開啟codeblocks,建立一個新專案。專案語言,選擇「c」, 我們將專案名稱命名為「回maxandmin」。

2、創答建好專案後,我們開啟 「main.c」檔案。

3、完成輸入功能其中m和n是輸入的兩個數,num是將來儲存的最大公約數。num的值是由後面我們定義的函式,來賦值的。

4、要強制使用者輸入正確的數for(;;)表示一個死迴圈 同樣使用while(true)也可達到死迴圈效果。

5、接下來,當使用者輸入合法之後。我們就要寫else的情況了。

6、當得到的餘數r不是0,就表示 m和n之間不是倍數關係。那麼我們將m的值改為n,n中從存取r 再次執行r=m%n 。意思就是,反覆的用餘數取模餘數,直到0位置。

就是n中存的就為最大公因數了。

7、接下來執行,我們輸入 6,3 其中3就是最大公因數,6是最小公倍數。

6樓:blue丶小

dev-cpp 5.4  純c語言環境du,通過編譯:

#include

int max(int a,int b)

int min(int a,int b)

int main()

7樓:刀無極啊

#include

int main()

else

res=dividend%divisor;

while(res!=0)//迴圈體是三條語句,不加大回括號迴圈只執行一答條語句

printf("%d",divisor);

}else

printf("error!\n");

return 0;

}兩數相乘除以最大公約數就是最小公倍數

c語言程式設計,求最大公約數

8樓:匿名使用者

#include

void main()

{int zdgy(int m,int n);

int x,y;

printf(

9樓:匿名使用者

#include

#include

int main()

i = a; j = b;

while (j != 0)

printf("最大公約數%d ", i);

printf("最小公倍數%d", (a*b)/i);

printf("\n");

return 0;}

c語言程式設計如何求最大公約數?

10樓:河蟹蛇薈

最大公約數演算法:

(1)輾轉相除法

兩整數a和b:

① a%b得餘數c

② 若c=0,則b即為兩數的最大公約數,結束③ 若c≠0,則a=b,b=c,再回去執行①(2)相減法

兩整數a和b:

① 若a>b,則a=a-b

② 若a③ 若a=b,則a(或b)即為兩數的最大公約數,結束④ 若a≠b,則再回去執行①

(3)窮舉法:

① i= a b中的小數

② 若a,b能同時被i整除,則i即為最大公約數,結束③ i--,再回去執行②

c語言程式設計-求最大公約數

11樓:匿名使用者

把倒數第三句「i=i+1」去掉就可以得到正確的結果了,因為break之後不會執行i--操作了

或者使用輾轉相除的方法:

#include

void main()

temp = a%b;

while(temp)

printf("%d,%d的最大公約數為: %d",m,n,b);

printf("%d,%d的最小公倍數為: %d",m,n,m*n/b);}

12樓:靜楓緣

//輾轉相除法是古希臘求兩個正整數的最大公約數的,也叫歐幾里德演算法,其方法是用較大的數除以較小的數,上面較小的除數和得出的餘數構成新的一對數,繼續做上面的除法,直到出現能夠整除的兩個數,其中較小的數(即除數)就是最大公約數。以求288和123的最大公約數為例,操作如下:288÷123=2餘42 123÷42=2餘3942÷39=1餘3 39÷3=13所以3就是288和123的最大公約數。

//#include

int main()

printf("%d\n",c);

return 0;

13樓:匿名使用者

基本原理如下:

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

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

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

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

這樣逐次用後一個數去除前一個餘數,直到餘數是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。

14樓:匿名使用者

輾轉相除法還是首選的方法啊、它有效的減少了運算的時間複雜度。。

15樓:小童鞋_成

ddddddddddddddd

16樓:

int getcd(int u,int v)

return u;}

17樓:凌風

#include

void main()

{int m,n,k;

printf(

用c語言編寫輾轉相除法求最大公約數

可用遞迴來求。推薦以下 include int int a,int b 求最大公約版數函式void main c語言 用輾轉相除法求最大公約數 編寫c語言程式 int divisor int a,int b 自定義函式求兩數的最大公約數 設定中間變數進行兩數交換 while b 0 通過迴圈求兩數的...

歐幾裡最大公約數用資料結構嗎

設 n0 m0 第一次除完bai後,rem1 n0 m0 min m0,n0 m0 於是 du之zhi後n1 m0,m1 rem1 min m0,n0 m0 n0 2.但是 m1和n1大小關係dao不確定.下分a,b兩種情況討論 專a 如果n1 m1,rem2 n1 m1 min m1,n1 m1 ...

利用fun函式,求m和n的最大公約數

演算法叫輾轉相除法 例如求m,n的最大公約數 m n p.q p是m n的商,q是m n就是m除以n的餘數。然後在讓 m n n q 在作上面的迴圈 m n p.q 如果n為0,則m就是所求的最大公約數。另外題目還利用了一個性質,就是最大公約數 最小公倍數 m n 所以最後才有 printf d d...