怎麼求陣列內各數的最大公約數,怎麼求一個陣列內各數的最大公約數

2022-11-06 01:22:12 字數 2805 閱讀 1501

1樓:匿名使用者

肯定不對吧,先要用歐幾里德演算法求對前兩個數的公約數。

再不斷帶進去就可以了。

可以先寫個函式直接用來求兩個數的最大公約數,再不斷呼叫就可以了。

private function abc(x as integer, y as integer) as integer

dim r as integer if x < y thenr = x

x = y

y = r

end if

r = 1

dor = x mod y

x = y

y = r

loop until r = 0

abc = x

end function

private sub command1_click()dim i as integer

for i = 1 to 199

a(i + 1) = abc(a(i), a(i + 1))next i

print a(200)

end sub

應該可以了

c++中如何求一個陣列的最大公約數?

2樓:匿名使用者

樓上正解,舉個例子吧

#include

using namespace std;

int maxgys(int,int);

int maxgysarray(int a,int);

int main()

//maxgys用輾轉相減法求兩個數的最大公約數int maxgys(int a,int b)//maxgysarray求一個陣列的最大公約數,要求的參量為陣列a及其大小num

int maxgysarray(int a,int num)執行,輸入:3 6 9 12 15 18 21 24 27 30輸出:最大公約數是:3

3樓:匿名使用者

好像沒什麼特別的方法,應該就是兩個數求出最大公約數後再和第三個數求,依次

c語言 陣列 最大公約數 30

4樓:匿名使用者

int divisor (int a,int b)    /*自定義函式求兩數的最大公約數*/

/*設定中間變數進行兩數交換*/

while(b!=0)           /*通過迴圈求兩數的餘數,直到餘數為0*/

return (a);            /*返回最大公約數到呼叫函式處*/

}  int multiple (int a,int b)  /*自定義函式求兩數的最小公倍數*/

#include "stdio.h"    /*輸入輸出類標頭檔案*/

main()

5樓:景靈風

for(i=0,d=0;d<=0;i++)

d沒有變化,如果不輸入0,那就是死迴圈

6樓:聽不清啊

這是要做什麼事?

具體要輸入什麼?

要求輸出什麼?

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

7樓:匿名使用者

把倒數第三句「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);}

8樓:靜楓緣

//輾轉相除法是古希臘求兩個正整數的最大公約數的,也叫歐幾里德演算法,其方法是用較大的數除以較小的數,上面較小的除數和得出的餘數構成新的一對數,繼續做上面的除法,直到出現能夠整除的兩個數,其中較小的數(即除數)就是最大公約數。以求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;

9樓:匿名使用者

基本原理如下:

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

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

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

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

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

10樓:匿名使用者

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

11樓:小童鞋_成

ddddddddddddddd

12樓:凌風

#include

void main()

{int m,n,k;

printf(

如何求最大公約數,怎麼求最大公約數 舉幾個簡單的例子

大數。整除時的除數就是最大公約數。舉例 222 407求最大公約數 222 407 407除以222餘數185 222 185 222除以185餘數37 37 185 185除以37餘數0 所以最大公約數為37 39 24求最大公約數 39 24 39 24,餘數15 15 24 24 15,餘數9...

求最大公約數的方法及原理

方法bai du一 短除法 把兩個數一直除以zhi它們的公約數 dao,取它們的商回繼續除答 直到無約數可除為止。然後把約數全部乘起來,即為最大公約數。例 求12與48的最大公約數。解 所以12和48的最大公約數是 2 2 3 12方法二 歐幾里德演算法 輾轉相除法 在兩個數中,找出大數。用大數除以...

利用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...