Viết thuật toán tìm ước chung lớn nhất của hai số nguyên. In kết quả ra màn hình thanks trc ạ

2 câu trả lời

* Xác định bài toán :

- Input : số nguyên dương a và b

- Output : ước chung lớn nhất cua hai số a và b

* Ý tưởng :

- Nếu a = b ⇒ lấy số đó làm ước chung lớn nhất

- Nếu a > b => a ← a - b ngược lại b ← b - a

- Lặp lại cho đến khi giá trị a và b bằng nhau, lấy giá trị đó làm ước chung lớn nhất

- Nếu giá trị a và b không bằng nhau => a và b không có ước chung 

* Mô tả thuật toán :

- Bước 1 : nhập số a và b

- Bước 2 : nếu a = b thì lấy giá trị chung này làm ước chung lớn nhất rồi chuyển đến bước 5

- Bước 3 : nếu a > b thì a ← a - b ngược lại b ← b - a;

- Bước 4 : quay lại bước 2

Program bai_tap;

Uses crt;

Var M,N: integer;

Begin

   clrscr;

   write ('Nhập M, N= ');

   readln (M,N);

   While M <> N do

        if M >N then M:= M - N else N:= N - M;

   writeln( ' UCLN = :  ', M);

   readln

End.