2012-06-19 52 views
8

私は、複数の値の最大公約数を得るのに最も簡単な解決策を模索しています。次のようなもの:複数の(2つ以上の)数値の最大公約数

x=gcd_array(30,40,35) % Should return 5 
x=gcd_array(30,40) % Should return 10 

どうすれば解決できますか?

多くの感謝!

+0

[ユークリッドより、2つの数値の最大公約数]の可能な重複(http://stackoverflow.com/questions/1231733/euclidian-greatest-common-divisor-for-more-それから2つの数字) – starblue

答えて

1
`% GCD OF list of Nos using Eucledian Alogorithm 
    function GCD= GCD(n); 
    x=1; 
    p=n; 
    while(size(n,2))>=2 
    p= n(:,size(n,2)-1:size(n,2)); 
    n=n(1,1:size(n,2)-2); 
    x=1; 
    while(x~=0) 
    x= max(p)-min(p); 
    p = [x,min(p)]; 
    end  
    n=[n,max(p)]; 
    p= []; 
    end 
    ' 
+0

あなたの解決方法を教えてください。 – everton

+1

ファンクションGCDは、引数として数値リストリストを取る gcd(a1、a2、a3)= gcd(a1、gcd(a2、a3))を使用する 最後の2つの数値を別の行列に格納するP GCD アルゴリズムを使用する a1&a2 = a1-a2 (a1-a2)-a2のようにgが0または1になるまで GCD値をnに保存し直してn =( a1、a2、a3 ... a(n-2)、gcd(an-1、an)) – user11948

関連する問題