10

複数の値の最大公約数を取得するための最も簡単なソリューションを探しています。何かのようなもの:

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

これをどのように解決しますか?

どうもありがとう!

4

2 に答える 2

22
gcd(a,b,c) = gcd(a,gcd(b,c))

つまり、再帰を使用できます。

http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.73.3&rep=rep1&type=pdf&ei=90jgT9KPAtLS4QSNlOGdDQ&usg=AFQjCNGH_GewFofxWPfX2BDN6T5NF9PxAA

于 2012-06-19T09:48:47.143 に答える
0
 `% 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
  '
于 2014-11-12T20:24:16.217 に答える