求出几个数的最大公约数 pascal

给你n(1<=n<=50)个正整数,要求求出它们的最大公约数。(所有的整数的范围都在longint范围)input3182730onput3... 给你n(1 < = n < = 50) 个正整数,要求求出它们的最大公约数。(所有的整数的范围 都在longint范围)

input

3
18 27 30

onput

3
展开
 我来答
玧鍩怺恠
2009-11-08 · TA获得超过322个赞
知道小有建树答主
回答量:128
采纳率:0%
帮助的人:153万
展开全部
program abc;
var tmp,a,b,n:longint;
procedure swap(var a,b:longint);
begin
tmp:=a;a:=b;b:=tmp;
end;

function gcd(a,b:longint):longint;
begin
if b=0 then gcd:=a
else gcd:=gcd(b,a mod b);
end;

begin
readln(n);
read(a,b);
if b>a then begin swap(a,b) end;
a:=gcd(a,b);
while not eof do
begin
read(b);
if b>a then begin swap(a,b) end;
a:=gcd(a,b);
end;
writeln(a);
end.
逸之朦胧
2009-11-08 · 超过14用户采纳过TA的回答
知道答主
回答量:38
采纳率:0%
帮助的人:0
展开全部
function gcd(a,b:longint):longint;
begin
if b=0 then exit(a);
exit(b,a mod b);
end.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hds328705509
2009-11-12 · TA获得超过148个赞
知道小有建树答主
回答量:89
采纳率:0%
帮助的人:120万
展开全部
var s,n,i,k:longint;

function gcd(a,b:longint):longint;{辗转相除}
begin
if b=0 then exit(a);
exit(b,a mod b);
end.

begin
readln(n);
read(s);
for i:=1 to n-1 do begin
read(k);
s:=gcd(s,k);
end;
writeln(s);
end.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式