Pascal语言求两个数的最小公倍数和最大公约数

学习 时间:2026-04-04 20:58:07 阅读:6946
Pascal语言求两个数的最小公倍数和最大公约数

最佳回答

完美的大炮

烂漫的期待

2026-04-04 20:58:07

1。1最大公约数与最小公倍数 1。算法1:欧几里德算法求a,b的最大公约数 function gcd(a,b:longint):longint; begin if b=0 then gcdd:=a else gcd:=gcd(b,a mod b); end; 2。算法2:最小公倍数acm=a*b div gcd(a,b); 3。算法3:扩展的欧几里德算法,求出gcd(a,b)和满足gcd(a,b)=ax+by的整数x和y function exgcd(a,b:longint;var x,y:longint):longint; var t:longint; begin if b=0 then begin result:=a; x:=1; y:=0; end else begin result:=exgcd(b,a mod b,x,y); t:=x; x:=y; y:=t-(a div b)*y; end; end; (理论依据:gcd(a,b)=ax+by=bx1+(a mod b)y1=bx1+(a-(a div b)*b)y1=ay1+b(x1-(a div b)*y1))

最新回答共有2条回答

  • 高挑的宝马
    回复
    2026-04-04 20:58:07

    1。1最大公约数与最小公倍数 1。算法1:欧几里德算法求a,b的最大公约数 function gcd(a,b:longint):longint; begin if b=0 then gcdd:=a else gcd:=gcd(b,a mod b); end; 2。算法2:最小公倍数acm=a*b div gcd(a,b); 3。算法3:扩展的欧几里德算法,求出gcd(a,b)和满足gcd(a,b)=ax+by的整数x和y function exgcd(a,b:longint;var x,y:longint):longint; var t:longint; begin if b=0 then begin result:=a; x:=1; y:=0; end else begin result:=exgcd(b,a mod b,x,y); t:=x; x:=y; y:=t-(a div b)*y; end; end; (理论依据:gcd(a,b)=ax+by=bx1+(a mod b)y1=bx1+(a-(a div b)*b)y1=ay1+b(x1-(a div b)*y1))

上一篇 5x=25乘9分之1(解方程)

下一篇 汉武帝修长城来抵匈奴吗