主题:求两个数的最大公约数和最小公倍数,各位高手支支招
yeshengxin
[专家分:0] 发布于 2005-04-15 15:03:00
[em18][em18][em18][em18][e求两个数的最大公约数和最小公倍数,各位高手支支招m18][em18]
回复列表 (共7个回复)
沙发
大蟹 [专家分:50] 发布于 2005-04-15 16:14:00
顶!顶!顶!顶!顶!顶!顶!
用辗转相除法即可求最大公约数!!!!!
至于最小公倍数,实在不行就搜!!!!(也可以用这两个数相乘然后除以最大公约数)
板凳
sd5774188 [专家分:260] 发布于 2005-04-16 12:11:00
program yb(input,output);
var a,b,c,x:longint;
y:real;
begin
read(a,b);
c:=0;
while (c<=a) and (c<=b) do
begin
c:=c+1;
if (a mod c=0) and (b mod c=0) then
x:=c;
end;
y:=(a*b)/x;
writeln('x=',x,'y=',y:100:0);
end.
x是最小公约数 y是最大公倍数
应该看得懂吧 我也是个菜鸟
3 楼
huga3 [专家分:50] 发布于 2005-04-16 22:22:00
最小公倍数[m,n]=d*m'*n';
其中,d=gcd(m,n)最大公约数;
m=m'*d;
n=n'*d
4 楼
dogdog [专家分:60] 发布于 2005-04-16 22:29:00
begin
read(a,b)
repeat
c:=a mod b
d:=b
b:=c
a:=b
until c=i
?b '最大公约数
5 楼
dogdog [专家分:60] 发布于 2005-04-16 22:37:00
i:=1
begin
read(a,b) 'A要是较大的数
repeat
c:=a*i
d:=c mod b
i:=i+1
until d=0
?c
end
6 楼
dogdog [专家分:60] 发布于 2005-04-16 22:38:00
a要是较大的数
7 楼
smallboat [专家分:60] 发布于 2005-04-17 09:26:00
program aaaa;
var x,y,t:integer;
begin
readln(x,y);
t:=x mod y;
while t<>0 do begin
x:=y; y:=t; t:=x mod y;
end;
writeln(y);
end.
x是那个较大的数,最后输出的y就是他们的最大公约数。
最小公倍数是x*y/他俩最大公约数。
我来回复