viết chương trình tìm ước chung lớn nhất và bội chung nhở nhất của hai số A,B (nhập từ bàm phím) làm nhanh giúp mk .cảm ơn

2 câu trả lời

program oken;
uses crt;
var a,b,x,y:integer;
begin
        clrscr;
        write('Nhap so A: '); readln(a);
        write('Nhap so B: '); readln(b);
        x:=a; y:=b;
        while a<>b do
                begin
                        if a>b then
                                a:=a-b
                        else
                                b:=b-a;
                end;
        writeln('UCLN cua 2 so ',x,' va ',y,': ',a);
        writeln('BCNN cua 2 so ',x,' va ',y,': ',(x*y) div a);
        readln;
end.

Tính ước số chung lớn nhất của 91 và 287.

Trước hết lấy 287 (số lớn hơn trong 2 số) chia cho 91:

287 = 91*3 + 14 (91 & 14 sẽ được dùng cho vòng lặp kế)

Nhận xét: bất kỳ số nào chia hết bởi 287 và 91 cũng sẽ chia hết bởi 287 - 91*3 = 14. Tương tự, số chia hết bởi 91 và 14 cũng chia hết bởi 91*3 + 14 = 287. Do đó, ƯSCLN(91,287) = ƯSCLN(91,14). Bài toán trở thành tìm ƯSCLN(91,14). Lặp lại quy trình trên cho đến khi phép chia không còn số dư như sau:

91 = 14*6 + 7 (14 & 7 sẽ được dùng cho vòng lặp kế)14 = 7*2 (không còn số dư, kết thúc, nhận 7 làm kết quả)

Cuối cùng ta có: 7 = ƯSCLN(7,0) = ƯSCLN(14,7) = ƯSCLN(91,14) = ƯSCLN(287,91).

Nhận xét: 

- Bất kỳ số nào chia hết bởi 287 và 91 cũng sẽ chia hết bởi 287 - 91*3 = 14. Tương tự, số chia hết bởi 91 và 14 cũng chia hết bởi

:91*3 + 14 = 287.

Do đó, ƯSCLN(91,287) = ƯSCLN(91,14). Bài toán trở thành tìm ƯSCLN(91,14). Lặp lại quy trình trên cho đến khi phép chia không còn số dư như sau:

91 = 14*6 + 7 (14 & 7 sẽ được dùng cho vòng lặp kế)

14 = 7*2 (không còn số dư, kết thúc, nhận 7 làm kết quả)

Cuối cùng ta có: 7 = ƯSCLN(7,0) = ƯSCLN(14,7) = ƯSCLN(91,14) = ƯSCLN(287,91).

BCNN của a, b được tính dựa trên UCLN của 2 số đó theo công thức:

Câu hỏi trong lớp Xem thêm
4 lượt xem
2 đáp án
3 giờ trước