logo

Viết chương trình tìm bội số chung nhỏ nhất của hai số nguyên dương a và b

icon_facebook

Câu hỏi: Viết chương trình tìm bội số chung nhỏ nhất của hai số nguyên dương a và b

Trả lời: 

Ta nhận thấy rằng, bội số chung nhỏ nhất của hai số nguyên dương a, b có thể được tính theo công thức:

ab/d

trong đó d là ước chung lớn nhất của a và b.

Bởi vậy:

Nên viết hàm để tính bội chung nhỏ nhất của hai số nguyên dương vì chương trình con cần trả ra một giá trị;

- Hàm tính bội chung nhỏ nhất của hai số nguyên dương a, b cần sử dụng hàm tính ước chung lớn nhất của a và b.

- Hàm tính ước chung lớn nhất của hai số nguyên dương a, b:

function ucln (a, b: integer): integer;

var r: integer;

begin

while b>0 do begin

r: = a mod b ,a : = b ; b:= r; end; ucln:= a; and;

- Hàm tính bội chung nhỏ nhất của hai số nguyên dương a, b:

lunction bcnn(a, b: integer): integer;

begin

bcnn:= a*b div ucln(a, b);

end;

Khi đó, chương trình con tính bội số chung nhỏ nhất của hai số nguyên dương a, b như sau:

program bai4_chuong6;

use crt ;

vai

X y: integer;

function ucln(a, b: integer): integer;

var r: integer;

begin

while b>0 do begin

r:= a mod b; a: = b ,b:= r;

end; ucln:= a;

end;

txnction bcnn(a, b: integer): integer;

begin

bcnn:= a*b div ucln(a, b);

end;

Begin

clrscr;

writeln('Nhap vao hai so can tim BCNN');

write ('x=') , readln(x); write ('y=') , readln(y);

writeln('bcnn cua hai so',x:4,'va',y:4,'la',bcnn(a,b)

readln

End.

Cách viết chương trình tìm USCLN và BSCNN

Viết chương trình nhập vào hai số nguyên dương a, b bất kỳ, hiển thị ước chung lớn nhất của hai số và bội chung nhỏ nhất của hai số đó.

Viết chương trình tìm bội số chung nhỏ nhất của hai số nguyên dương a và b

F9 kiểm tra lỗi chương trình Tìm USCLN và BSCNN

Viết chương trình tìm bội số chung nhỏ nhất của hai số nguyên dương a và b (ảnh 2)

chạy thử chương trình Tìm USCLN và BSCNN?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

ProgramUC_BC;

Usescrt;

Vara, b,x,y,uc: integer;

    bc:real;

BEGIN

    Clrscr;

    Writeln('Nhap so thu nhat '); readln(a);

        x:=a;

    Writeln('nhap so thu hai '); readln(b);

        y:=b;

    While(a<>b) do

           Ifa>b thena:=a-b elseb:=b-a;

    uc:=a;

        bc:=(x*y)/uc;

        Write('USCLN va BSCNN ',x,' va ',y,' la US ',uc,' BS ',bc:2:0);

    Readln

End.

icon-date
Xuất bản : 09/11/2021 - Cập nhật : 13/07/2024

Câu hỏi thường gặp

Đánh giá độ hữu ích của bài viết

😓 Thất vọng
🙁 Không hữu ích
😐 Bình thường
🙂 Hữu ích
🤩 Rất hữu ích
image ads