Bài 1: Viết chương trình tìm ước chung lớn nhất (UCLN) và bội chung nhỏ nhất (BCNN) của hai số nhập từ bàn phím.
Gợi ý
-
Điều kiện:
- Ước chung lớn nhất là gì? Nếu một số nguyên bất kỳ chia hết cho số nguyên được gọi là ước của số nguyên và được gọi là bội của . Nếu 2 số dương và bất kỳ cùng chia hết cho một số nguyên lớn nhất thì được gọi là ước chung lớn nhất của và . Nếu và đều bằng 0 thì chúng không có ước chung.
- Bội chung nhỏ nhất là gì? được gọi là bội chung nhỏ nhất của và khi là số nguyên nhỏ nhất chia hết cho và .
-
Cách giải: 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 trên ta được BCNN.
Đáp án
var a,b,UCLN,BCNN:integer;
begin
write('Nhap vao 2 so a va b');
readln(a,b);
BCNN:=a*b;
While a<>b do
If a>b then a:=a-b else b:=b-a;
UCLN:=a;
BCNN:=BCNN div UCLN;
write(UCLN,' ',BCNN);
end.
Bài 2: Viết chương trình nhập vào một dãy gồm N số nguyên rồi thực hiện các yêu cầu sau:
- Cho biết có bao nhiêu số lẽ trong dãy?
- Tính trung bình cộng của các số lẽ trong dãy đó.
Bài 3: Viết chương trình giải bài toán sau:
Trăm trâu trăm cỏ
Trâu đứng ăn năm
Trâu nằm ăn ba
Lụ khụ trâu già
Ba con một bó
Hỏi mỗi loại mấy con?
Gợi ý
- Có một trăm con trâu ăn hết một trăm bó cỏ. Mỗi con trâu đứng ăn đưọc 5 bó. Mỗi con trâu nằm ăn được 3 bó và ba con trâu già thì chia nhau chỉ ăn được 1 bó. Hỏi có bao nhiêu con trâu đứng, bao nhiêu con trâu nằm và bao nhiêu con trâu già.
-
Phân tích:
- Trâu đứng ăn 5 => số cỏ ăn là 5 bó => số trâu đứng <=20.
- Trâu nằm ăn 3 => số cỏ ăn được là 3 bó => số trâu nằm <=33
-
Trâu già = 100 – số trâu đứng – số trâu nằm.
Đáp án
Program ConTrau;
Uses Crt;
Var i,j,k:byte;
Begin
Clrscr;
For i:=1 to 20 do
For j:=1 to 33 do
begin
k:=100-i-j;
if 5*i+3*j+k/3 = 100 then
Writeln('Trau dung ',i,' trau nam ',j,' trau gia ',k);
end;
Readln
End.