多个(超过2个)数字的最大公约数

时间:2012-06-19 09:36:54

标签: matlab math

我正在寻找最简单的解决方案来获得多个值的最大公约数。类似的东西:

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

你会如何解决这个问题?

非常感谢!

2 个答案:

答案 0 :(得分:20)

答案 1 :(得分: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
  '