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

2021-05-04 15:08:11 字數 6516 閱讀 3912

1樓:匿名使用者

main()

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

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

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。

2樓:在古崖居調查民俗的白鷺

#include

int main()

}min = a*b/max;

printf("最大公約數是%d,最小公倍數是%d\n",max,min);

return 0;}

3樓:c的**

#include

int main()

printf("greatest common divisor: %d\n", n_cup);

printf("lease common multiple : %d\n", m * n / n_cup);

} else printf("error!\n");

return 0;}

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

4樓:凌亂心扉

#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++)}}

5樓:

#include

using namespace std;

int main()

num1 = a;

num2 = b;

while(num2 != 0)

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

return 0;}

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

6樓:匿名使用者

#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、退出迴圈,執行迴圈體下面的語句。

7樓:逮穎紹天慧

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

演算法描述:

m對n求餘為a,

若a不等於0則m

<-n,n

<-a,繼續求餘否則n

為最大公約數

<2>最小公倍數

=兩個數的積

/最大公約數

#include

intmain()

{intm,

8樓:酈秀梅杞妍

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

#include

void

main()

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

intmin_num(int

x,int

y)returni;}

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

intmax_num(int

x,int

y)returni;}

9樓:證喔

#include

void main ()

printf ("最大

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

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

10樓:周素芹賴庚

程式設計: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);

11樓:匿名使用者

#include

int main()

else

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

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

return 0;}

改了一下上面的

12樓:眭煜牟婉靜

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

調整順序

使m>=n

迴圈m=m%n;

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

n=n%m;

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

next

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

最小公倍數。

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

13樓:冠夏登溪

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

。#include

void

main()

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

intmin_num(int

x,int

y)returni;}

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

intmax_num(int

x,int

y)returni;}

14樓:i樂於助人

#include

int main()

printf("greatest common divisor: %d\n", n_cup);

printf("lease common multiple : %d\n", m * n / n_cup);

} else printf("error!\n");

return 0;}

15樓:蘭昂位力

#include

using

namespace

std;

intmain()

用c語言編寫程式:輸入兩個正整數m,n.求其最大公約數和最小公倍數

16樓:匿名使用者

#include "stdio.h"

void main()

17樓:林柯伊南

#include"stdio.h"

main()

while (m%n!=0)

a=a/n;b=b/n;q=a*b*n;

printf("兩數最大公約數為

%d,最小公倍數為 %d\n",n,q);}

18樓:匿名使用者

if (n>m)

while (m%n)

演算法就是用輾轉相除法求最大公約

數演算法描述:

m對n求餘為a, 若a不等於0

則 m <- n, n <- a, 繼續求餘否則 n 為最大公約數

19樓:桔聚聚

還要考慮如果m/n等於零的情況

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

20樓:匿名使用者

main()

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

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

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。

21樓:匿名使用者

int m,n,r,a,b;

b=m*n;

while(n!=0)

a=m;

b=b/a;

a是最大公約數b是最小公倍數,程式輸入輸出自己寫。

最大公約數用的是歐幾里德演算法,最小公倍數為兩數相乘除以最大公約數。

22樓:匿名使用者

#include

void main ()

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

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

return 0; }

23樓:小張

#include

int main()

printf("greatest common divisor: %d\n", n_cup);

printf("lease common multiple : %d\n", m * n / n_cup);

} else printf("error!\n");

return 0;

} 不懂再問我。。。

24樓:手機使用者

輸入一行字元,分別統計出其中英文字母,空格,數字和其他的個數

C語言題目程式設計輸入若干正整數(輸入0或負數結束),找出其中的素數,並輸出

include int is prime int n return 0 c語言程式設計 在main函式中輸入一批正整數 以零或負數作為輸入結束標誌 include int perime int n int main printf d n sum return 0 include int prime ...

c簡單程式設計輸入兩個整數交換兩個整數並輸出

支付寶5元我可以代勞 2458194647 include using namespace std void main 第一題 bai include void main 第二題 include void main 超級簡單學習c 入門可以和我交流 程式設計實現輸入兩個整數,輸出對應的兩個整數 這個...

c語言程式設計題輸入正整數判斷其中各位數字

include include include int main int argc,char argv if leap printf yes n else printf not n return 0 將每位的數字提出來判斷是否奇偶交替就行了 c語言程式設計 輸入一個正整數n,判斷它是否為素數 inc...