1樓:遊海穎
求兩個整數的最大公約數(輾轉相除法)
程式如下:
varm , n : integer;
function fac(i, j:integer):integer;
begin
if j=0 then begin fac:=i;exit;end;
fac:=fac(j ,i mod j);
end;
begin
readln(n, m);
writeln(fac(n,m));
end.
或var
a,b:integer;
procedure qw(a,b:integer);
varv:integer;
begin
if a mod b=0 then writeln(b)else if b mod a=0 then writeln(a)else
begin
v:=a;
a:=a mod b;
b:=b mod v;
qw(a,b);
end;
end;
begin
readln(a,b);
qw(a,b);
readln;
end.
2樓:
把第3行的1..n改為1..10(要一個定值,在var下的都是變數,他會認為你的陣列相當的大,超過了計算機能處理的範圍)
free pascal 求最大公約數與最小公倍數
3樓:匿名使用者
var n,m,r,t,a:integer;
begin
readln(n,m);
a:=n*m;
if n0) do
begin
n:=m;
m:=r;
r:=n mod m;
end;
writeln(m,' ',a div m);
end.
m為最大公約數,a div m為最小公倍數
4樓:匿名使用者
有點晚了……
vari,j,m,n,min,max:longint;
f:boolean;
begin
readln(m,n);
if m>n then begin i:=m;m:=n;n:=i;end;
for i:=m downto 1 doif(m mod i=0)and(n mod i=0)then begin min:=i;break;end;
i:=n;
while(i mod m<>0)or(i mod n<>0)do inc(i);
max:=i;
writeln(min);
writeln(max);
end.
pascal二進位制數最大公約數和最小公倍數(用自定義函式)
5樓:匿名使用者
var a,b:string;xy,x,y,n:longint;
function ezs(a:string):longint;
varc:array[1..30] of longint;
s,l,i:longint;
begin
l:=length(a);
c[l]:=1;
for i:=l-1 downto 1 doc[i]:=c[i+1]*2;
s:=0;
for i:=1 to l do
s:=s+(ord(a[i])-48)*c[i];
ezs:=s;
end;
procedure sze(a:longint);
var s:array[1..1000] of longint;i,j:longint;
begin
i:=0;
while a<>0 do
begin
i:=i+1;
s[i]:=a mod 2;
a:=a div 2;
end;
for j:=i downto 1 do write(s[j]);
end;
begin
readln(a);x:=ezs(a);
readln(b);y:=ezs(b);
xy:=x*y;
while x mod y<>0 do
begin
n:=x;
x:=y;
y:=n mod y;
end;
sze(y);
write(' ');
sze(xy div y);
writeln;
end.
vb語言求最大公約數,使用vb求最大公約數的兩種方法是什麼?
private sub gys m as integer,n as integer 求出兩個數的最大公約數 dim r as integer r m mod n do while r 0 m n n r r m mod n loop end sub private sub command1 clic...
最大公約數的規律
網上有的,查一下就知道了 在特殊情況下求最大公因數,最小公倍數的幾條規律.最小公倍數 可以使用整除法。一直除到兩個數互質,那麼所有除數的乘積即最大公約數而最小公倍數則是所有的因子,商相乘 例如64,40 2 64 40 除以2,2 32 20 商32,20 2 16 10 繼續除以2,商16,10 ...
求36963與59570的最大公約數
通過觀察容易發現,36963有約數3 3。而59570沒有質數3。59570有質因數2和5,而36963沒有質因數2和5。所以可以從36963中分解出3 3,從59570中分解出2 5,再求其餘部分的最大公約數。36963 3 3 4107 59570 2 5 5957 輾轉相除法 用大數除以小數再...