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ố đó.
F9 kiểm tra lỗi chương trình Tìm USCLN và BSCNN
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. |