Cách làm (Tham khảo):
Nhập hai số nguyên từ bàn phím, ta gọi hai biến đó lần lượt là so1 và so2 Kiểm tra nếu một trong hai số bằng 0 thì in ra màn hình không có bội chung nhỏ nhất Tìm số lớn nhất trong hai số, ta gọi đó là max Sử dụng vòng lặp while vô tận để tìm bội chung lớn nhất, trong bài này mình dùng vòng lặp while vô tận vì chắc chắn sẽ tồn tại một bội chung nhỏ nhất của 2 số so1 và so2 Trong mỗi vòng lặp kiểm tra nếu max chia hết cho cả hai số thì BCNN bằng max và dùng lệnh break để kết thúc vòng lặp Nếu max không chia hết cho cả hai số, thì tạo nhiều bộ số của max tiếp theoLời giải :
program hotrotinhoc;
var a,b: integer;
function bcnn(x,y: integer): boolean;
var s,t: integer;
begin
while y<>0 do
begin
s:=x mod y;
x:=y;
y:=z;
end;
t:=(x*y) div x;
bcnn:=t;
end;
begin
write('a='); readln(a);
write('b='); readln(b);
write(bcnn(a,b));
readln
end.