一般matlab里给出的gcd(a,b)函数求最大公约数只能有两个参数,如果输入gcd(1,2,3)就会出现出现如下错误:
所以如果求多个数的最大公约数就会出现问题,下面程序是对任意多个数求最大公约数:
function [maxgcd]=maxgcd(A)
n=length(A);
maxgcd=A(1);
for i=1:1:(n-1)
maxgcd=gcd(maxgcd,A(i+1));
end
end
例如求4,8,12,24的最大公约数为:
除了求最大公约数,有时候也要求多个数的最小公倍数:
function [min_GBS]=min_GBS(A)
n=length(A);
maxA=max(A);
s=1;
k=0;
for i=1:1:n
s=s*A(i);
end
fla=false;
for i=maxA