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: