C語言剛開始學有個問題想請教輸入兩個正整數m和n,求其最大公約數和最小公倍數。麻煩哪位仁兄幫忙解答哈

2021-04-02 07:40:06 字數 3861 閱讀 5081

1樓:匿名使用者

在條件i<=m&&i<=n內,由1開始找出可以整除m和n的數,賦給s。

執行到後面有更大的數可回以整除m和答n的,它的值將重新賦給s,替換原有的值,一直替換到最接近m或n的一個公約數,所以是最大公約數。

舉個例子:100和50

i=2時,把i賦給s了

但當i=5時,s的值就給5替換了

一直替換到i=50時,才退出迴圈,此時s=50,為最大公約數

2樓:北雨之殤

關鍵這個是for 迴圈了,s的最終值是最大公約數。因為 i 是《= m n中最小值,只要滿足這個條

版件,for 迴圈就會執權行,i就會增加,直到加到最大能整除m n的數,這時賦值給s ,就覆蓋了前面可以整除的數。從而使最大公約數

3樓:陳宗權

你每次找到一個公約數就儲存在s中,最後s中儲存的是最後找到的那個公約數。

找的時候是從小到大找的,最後找到的那個自然是最大的。

c語言程式設計,輸入兩個正整數m和n,求其最大公約數和最小公倍數?

4樓:匿名使用者

#include

int main()

a = num1;

b = num2;

while(b!=0)

printf("gongyueshu:%d\n",a);

printf("gongbeishu:%d\n",num1*num2/a);

}擴充套件資料:

c語言迴圈控制語句

一、while語句

1、計算while後面括號裡表示式的值,若其結果非內0,則轉容入2,否則轉3

2、執行迴圈體,轉1

3、退出迴圈,執行迴圈體下面的語句。

由於是先執行判斷後執行迴圈體,所以迴圈體可能一次都不執行。

二、do...while語句

1、執行迴圈體,轉2

2、計算while後面括號裡表示式的值,若其結果非0,則轉入1,否則轉3

3、退出迴圈,執行迴圈體下面的語句。

5樓:逮穎紹天慧

<1>用輾轉相除法求最大公約數

演算法描述:

m對n求餘為a,

若a不等於0則m

<-n,n

<-a,繼續求餘否則n

為最大公約數

<2>最小公倍數

=兩個數的積

/最大公約數

#include

intmain()

{intm,

6樓:酈秀梅杞妍

用了一種比較笨的bai方法,但是du好理解,希望zhi對你有幫助。dao

#include

void

main()

//這個函式用於求最小公倍數

intmin_num(int

x,int

y)returni;}

//這個函式用於求最大公約數

intmax_num(int

x,int

y)returni;}

7樓:證喔

#include

void main ()

printf ("最大

公約數是%d\n", m);//上面的演算法n=0時daom這時的值就是最大公約數

printf ("最小公倍數是%d\n", p/m);//兩數的積除以最大公約數就是最小公倍數了

8樓:周素芹賴庚

程式設計:bai

(1)比較已給兩數大小du,選出小zhi的intx,y

if(x

>y)則y小(2)迴圈語句dao

for(i=小的那個數;i>=1;i--)如果回i能整除兩者則輸出結果答。if(

(x/i*i==

x)&&

(y/i*i

==y))

break;

printf("最大公約數是

%d\n",i);

9樓:匿名使用者

#include

int main()

else

printf("最大公約數是%d\n", m);

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

return 0;}

改了一下上面的

10樓:眭煜牟婉靜

最大公約數:(輾轉相除法)

調整順序

使m>=n

迴圈m=m%n;

如果m=0,則n為最大公約數,跳出迴圈。注:%表示取餘運算。

n=n%m;

如果n=0,則m為最大公約數,跳出迴圈。

next

求出最大公約數g後,用m*n/g得到

最小公倍數。

c語言程式題,輸入兩個正整數m和n,求其最大公約數和最小公倍數。 100

11樓:四舍**入

輸入兩個正整數m和n,求其最大公約數和最小公倍數,可以參考下面的**:

#include

void main ()

printf ("最大公約數是%d\n", m);//上面的演算法n=0時m這時的值就是最大公約數

printf ("最小公倍數是%d\n", p/m);//兩數的積除以最大公約數就是最小公倍數了

12樓:匿名使用者

最大公約數:(輾轉copy

相除法)

調整順序使m>=n

迴圈m=m%n; 如果m=0,則n為最大公約數,跳出迴圈。注:%表示取餘運算。

n=n%m; 如果n=0,則m為最大公約數,跳出迴圈。

next

求出最大公約數g後,用m*n/g得到最小公倍數。

13樓:匿名使用者

return;

if (m n) n :m;

int c = 0;

while ((a % b) !

bai= 0)

printf("%d and %d greatestcommondivisor = %d\n",m,n,b);

printf("%d and %d 最小

du公zhi倍dao數內為容:%d\n",m,n,b/n);

} }int main()

14樓:

#include "stdio.h"

int main(void)

printf("error, redo. ");

fflush(stdin);

}return 0;}

c++實現輸入兩個正整數m和n,求其最大公約數和最小公倍數?

15樓:凌亂心扉

#include "stdio.h"

void main()

}if(i == c+1)

printf("沒有最大公約數 ");

c = m > n ? m : n ;           // 取 m n 中較大的數,賦值給c //

for (i = c ; i <= m*n; i++)}}

16樓:

#include

using namespace std;

int main()

num1 = a;

num2 = b;

while(num2 != 0)

cout << "最大公約數為:" << num1<< " 最小公倍數為:" << (a * b) / num1 << endl;

return 0;}

C語言的流程圖問題,剛開始學,不太會,謝謝

include int main c語言流程圖問題,初學者,不太會,謝謝 3?include void main if a c if b c printf d d d n a,b,c c語言程式設計問題,初學者,不太會,謝謝 3?include int main int argc,char argv...

我剛開始自學c語言在看譚浩強的書我想試一試第一章的幾個程式但是不知道怎麼樣用微軟的vc 來實現

檔案 新建 檔案 c source file 然後就可以敲 了。編譯的時候,組建 編譯,組建 組建,然後按工具欄中的那個歎號,程式就執行了。turbo c 2.0已經過時了,我是一個大學生,學的是軟體專業的,以前大四的學生用的是turbo c 2.0 而我們用的則是vc 6.0,雖然是vc 6.0,...

有個問題想請教下大家,有個問題想請教一下大家

我怎麼和你說呢 我兩年前比你還嚴重。你可能已經開始了,或許正在發展吧。我是看了很長時間的心理醫生了,這不是聳人聽聞。看到你的問題的時候我有種很怪異的感覺。其實每個人都有點心理問題,但是稍微一點沒關係。嚴重了就是你一輩子都忘不了得事了。其實和心理醫生告訴我的一樣 我不能告訴你很多,你這首先是對自己不自...