level 3
用辗转相除法求两个整数
m和
n的最大公约数。如输入
26 39,输出
13。所谓辗转相除法只指,第
1步计算
m mod n,如结果为
0,则
n就是最大公约数,否则执行第
2步,将
m=n,
n=m mod n;反复执行
1、
2两步,直到
m mod n=0。
<?xml:namespace prefix="o" ns="urn:schemas-microsoft-com:office:office"></?xml:namespace>
2014年04月13日 06点04分
1
level 13
求a b的最大公约数
z:=a mod b;
while z<>0 do
begin
a:=b;
b:=z;
z:=a mod b;
end;
gcd:=b;
2014年04月13日 08点04分
3
level 12
var a,b,r:longint;
begin
read(a,b);
r:=a mod b;
while r<>0 do
begin
a:=b;
b:=r;
r:=a mod b;
end;
writeln(b);
end.
2014年04月13日 10点04分
5
level 1
Function gcd(a,b:longint):longint;
var r:longint;
begin
r:=a mod b;
if r=0 then exit(b)
else exit(gcd(b,r));
end;
调用的时候保证a>b
2014年04月13日 13点04分
6