Chương trình con ước chung lớn nhất trong pascal


Ý tưởng: Lấy số lớn hơn trong 2 số trừ đi nhau. Lặp lại thao tác đến khi nào 2 số bằng nhau -> UCLN. Lấy tích của 2 số chia cho UCLN -> BCNN.

Thuật toán tìm Bội chung nhỏ nhất và Ước chung lớn của 2 số trong Pascal:


Cách 1: Dưới đây là thuật toán tìm UCLN bằng cách trừ đi nhau, được trình bày trong SGK tin học 10.

var x,y,UCLN,BCNN:integer;

begin

readln[x,y];
BCNN:=x*y;

While xy do If x>y then x:=x-y else y:=y-x;
UCLN:=x;
BCNN:=BCNN div UCLN;

write[UCLN,' ',BCNN];

end.

Cách 2:

Thuật toán Euclide: Ngoài cách tìm UCLN như trên. Các bạn có thể sử dụng cách chia lấy dư [mod], chương trình sẽ tối ưu do phải thực hiện ít phép tính hơn.

Ý tưởng: UCLN của 2 số x, y cũng là UCLN của 2 số y và x mod y, vậy ta sẽ đổi x là y, y là x mod y cho đến khi y bằng 0. Khi đó UCLN là x.

var x,y,UCLN,BCNN,t:integer;

begin

readln[x,y];
BCNN:=x*y;
t:= y mod x;
While t 0 do
      Begin
        t:= x MOD y;
        x:= y;
        y:= t;
      End;

ucln:=x;
BCNN:=BCNN div UCLN;

write[UCLN,' ',BCNN];

end.

Cách 3: Tìm UCLN bằng cách dùng đệ quy: Đệ quy được hiểu đơn giản là sự gọi nhiều lần chương trình con trong chương trình. Thực sự, đối với bài toán đơn giản, không ai sử dụng đệ quy vì sẽ làm phức tạp vấn đề và làm chương trình trở nên rắc rối, phải thực hiện nhiều phép tính hơn. Tuy nhiên, nếu bắt buộc phải dùng đệ quy, các bạn có thể tham khảo cách làm dưới đây:

function ucln[x,y:integer]:integer;
begin
if x = y then
ucln:=x
else if x > y then
ucln:=ucln[x mod y,y]
else
ucln:=ucln[x, y mod x];
end;

var x,y:integer;

begin

readln[x,y];

write['Ước chung lớn nhất là: ', UCLN[x,y], ' Bội chung nhỏ nhất là: ', [x*y] div UCLN[x,y]];

end.


Nhãn: Bài tập Pascal, Câu lệnh lặp, Pascal cơ bản, Vòng lặp while

Copyright © 2022 Hoc247.net

Đơn vị chủ quản: Công Ty Cổ Phần Giáo Dục HỌC 247

GPKD: 0313983319 cấp ngày 26/08/2016 tại Sở KH&ĐT TP.HCM

Giấy phép Mạng Xã Hội số: 638/GP-BTTTT cấp ngày 29/12/2020

Địa chỉ: P401, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM

Tìm ước chung lớn nhất và bội chung nhỏ nhất pascal là một bài tập cho các học sinh lớp 11 khi bắt đầu làm quen và thực hiện các phép tính với cấu trúc rẽ nhánh if...else thường gặp. Trong bài viết này SKT sẽ trình bày cho các bạn cách tìm ước chung lớn nhất và bội chung nhỏ nhất của 2 số nguyên bất kỳ.

Bạn đang xem: Tìm ước chung lớn nhất pascal


Đầu tiên chúng ta cần tìm hiểu vấn đề sau:- Ước chung lớn nhất là gì? Nếu một số nguyên a bất kỳ chia hết cho số nguyên c được gọi là ước của số nguyên a và a được gọi là bội của c. Nếu 2 số dương a và b bất kỳ cùng chia hết cho một số nguyên c lớn nhất thì c được gọi là ước chung lớn nhất của a và b. Nếu a và b đều = 0 thì chúng không có ước chung.- Bội chung nhỏ nhất là gì? c được gọi là bội chung nhỏ nhất của a và b khi c là số nguyên nhỏ nhất chia hết cho a và b.[*]
Công thức: UCLN[a,b] = [a*b]/BCNN[a,b]

Bài tập pascal tim ước chung lớn nhất và BCNN

Cách 1:
Lấy số lớn hơn trong 2 số đã cho trừ đi nhau. Lặp lại thao tác cho đến khi 2 số bằng nhau thì ngừng => UCLN. Và làm theo công thức [*] chúng ta được BCNN.
var x,y,UCLN,BCNN:integer;beginwrite["Nhap vao 2 so x va y"]; readln[x,y];BCNN:=x*y;While xy do If x>y then x:=x-y else y:=y-x;UCLN:=x;BCNN:=BCNN div UCLN;write[UCLN," ",BCNN];end.

Xem thêm: Nơi Bán Bộ Đồ Cho Mẹ Sau Sinh Tphcm Archives, Bộ Đồ Sau Sinh


Cách 2:
Sử dụng thuật toán Euclide bằng cách chia lấy dư [mod]. Ưu điểm của thuật toán này là xử lý nhanh hơn vì phép tính ít hơn so với cách 1.
var a,b,UCLN, BCNN, temp:integer; {temp là biến tạm}beginwrite["Nhap vao so a: "];readln[a];write["Nhap vao so b: "];readln[b];BCNN:= a*b;temp:= b mod a;while temp0 dobegintemp:= a mod b;a:=b;b:=temp; end;UCLN:=a;BCNN:= BCNN div UCLN;write["UCLN = ",UCLN," BCNN = ",BCNN];readln;end.
uses crt;function UCLN[a,b:integer]:integer;beginwhile[ab] doif a > b thena:=a-belseb:=b-aif a = b thenUCLN :=aend;var a,b:integer;beginclrscr;write["Nhap vao so a: "];readln[a];write["Nhap vao so b: "];readln[b];writeln["UCLN := ",UCLN[a,b]];write["BCNN := ", [a*b] div UCLN[a,b]];readln;end.
Bài giảngBài giảng vật líBất đẳng thứcCách họcCasio Fx500Casio Fx570CD-DVDCông nghệĐại họcĐại sốĐề thi đại líĐề thi hóa họcĐề thi ngữ vănĐề thi toánĐH - CĐĐịa líĐịa lí 10Địa lí 11Địa lí 12Địa lí 9Đoàn độiĐộc tiểu thanh kíĐường lối cách mạng của ĐCSEbookGamesGiải đốGiải toán vs MTGiáo ánGiáo dụcGương sángHàm sốHDG đề thiHình ảnhHình học không gianHóa họcHóa học 12Hóa học thực dụngHọc sinh giỏiHọc tiếng anh onlineIMOKhoa họcKĩ năngLịch sửLịch sử 10Lịch sử 11Lịch sử 12Lịch sử 12 nopicLịch sử 9Lớp 10Lớp 11Lớp 12Lớp 9Lượng giácMáy tính bỏ túiMobile 99MusicNghệ thuật sốngNghị luận văn họcNghị luận xã hộiNgữ pháp tiếng anhNgữ vănNgữ văn 10Ngữ văn 12Ngữ văn 9Nối mạng tương laiOrigamiÔn thi ĐH - CĐÔn Thi Văn HọcÔn Thi Vật LíPascalPT-HPT-BPTQuá khứ đơnSáng tạoShop CoolSinh họcSinh học 10Sinh học 11Sinh học 12Sức khỏeTâm sự TeenTheo yêu cầuThông báoThủ thuậtTiện íchTiếng anhTiếng Anh 11Tiếng Anh 12Tìm hiểuTin HọcTin Học 11Tin học 6ToánToán 10Toán 11Toán 12Toan HocToán học tuổi trẻTốt NghiệpTrà sữa tâm hồnTrắc nghiệm tiếng anhTrắc nghiệm vật líTrò chơiTrung học cơ sởTrung học phổ thôngTruyện ngắnTuổi học tròVăn hayVăn họcVăn học 12Văn mẫuVật líVật lí 11Vật lí 12Vọc máy tínhVui cười

Chủ Đề