PASCAL试题〔例2〕用尼考曼彻斯法求两个自然数a和b的最大公约数.方法是:辗转相减.如要求158与36的最大公约数,可以进一步转化为158-36=122与36的最大公约数,继续减,如果不够减就交换两个数,

来源:学生作业帮助网 编辑:作业帮 时间:2024/10/08 01:54:32
PASCAL试题〔例2〕用尼考曼彻斯法求两个自然数a和b的最大公约数.方法是:辗转相减.如要求158与36的最大公约数,可以进一步转化为158-36=122与36的最大公约数,继续减,如果不够减就交换两个数,
xSj@Y0Cv@趋B@"ĐviMqb!v[j';RHiUI>&3#e_蝑}]7>;Bz}c߻޺]zRn]/Ʝ`yK_pDóy}^`7Vt.h6rC(~_M~Ț *.WhxPRc8c gY*FQQ'| :t lr\وbVO_{

PASCAL试题〔例2〕用尼考曼彻斯法求两个自然数a和b的最大公约数.方法是:辗转相减.如要求158与36的最大公约数,可以进一步转化为158-36=122与36的最大公约数,继续减,如果不够减就交换两个数,
PASCAL试题
〔例2〕用尼考曼彻斯法求两个自然数a和b的最大公约数.
方法是:辗转相减.如要求158与36的最大公约数,可以进一步转化为158-36=122与36的最大公约数,继续减,如果不够减就交换两个数,直至差为0停止,最后一次不为0的数就是最大公约数.过程如下:
(158,36)=(122,36)=(86,36)=(50,36)=(14,36)
前面的数比后面小,交换:=(36,14)=(22,14)=(8,14)
再交换: =(14,8)=(6,8)=(8,6)=(2,6)=(6,2)=(4,2)=(2,2)=(0,2)

PASCAL试题〔例2〕用尼考曼彻斯法求两个自然数a和b的最大公约数.方法是:辗转相减.如要求158与36的最大公约数,可以进一步转化为158-36=122与36的最大公约数,继续减,如果不够减就交换两个数,
var a,b,temp:integer;
begin
readln(a,b);
if ab) then a:=a-b
else begin temp:=a-b; a:=b;b:=temp; end;
end;
if a=0 then writeln(b) else writeln(a);
end.