作业帮 > 综合 > 作业

pascal语言 求n个自然数的最大公约数和最小公倍数

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/12 06:25:43
pascal语言 求n个自然数的最大公约数和最小公倍数
是N个自然数 不是2个
求最大公约数一般用辗转相除法 但是是求2个的 求N个怎么算?
program sd;
const m=3;
var a:array[1..m]of integer;
i,s,n:integer;
function zdgy(num1,num2:integer):integer;
var j,k:integer;
begin
if num1num2 then k:=num1
else k:=num2;
for j:=k to num1*num2 do
if (j mod num1=0)and(j mod num2=0) then
begin
zxgb:=j;
exit;
end;
end;
begin
for i:=1 to m do
readln(a[i]);
s:=a[1];
n:=a[1];
for i:=2 to m do
begin
s:=zdgy(s,a[i]);
n:=zxgb(n,a[i]);
end;
writeln('zui da gong yue shu shi ',s);
writeln('zui xiao gong bei shu shi ',n);
end.
m是这些数的个数,这些数要自己赋值