Function UCLN(x,y:longint)
Begin
While x<>y do If x>y then x:=x-y else y:=y-x;
UCLN:=x;
end;
Hoặc
Function UCLN(x,y:longint);
var r:longint;
Begin
While y ≠ 0
begin
r := x mod y
x := y
y := r
end;
UCLN:=x;
End
+)Tìm BCNN
BCNN:=(x*y) div UCLN(x,y);
+)Rút gọn phân số a/b
a:=a div UCLN(a,b);
b:=b div UCLN(a,b);
+)Cộng 2 phân số rồi rút gọn
Ta có a/b+c/d =(ad+bc)/(bd);
Code
TS:=ad+bc;
MS:=bd;
TS:=TS div UCLN(TS,MS);
MS:=MS div UCLN(TS,MS);
Những cái này áp dụng cho các số nguyên dương thôi.
Nếu mà có số âm thì cũng dễ thôi : lưu dấu rồi chuyển các số âm sang dương (đổi dấu) ra đáp số rồi thì lại vứt dấu vào.
Edited by becon91, 23-02-2010 - 17:22.