1/ Viết Chương trình tìm UCLN và BCNN của 2 số a,b 2/ Viết chương trình Tìm max, Min của 4 số a,b,c,d 3/Viết chương trình tìm tất cả các số có 3 chữ số a,b,c sao cho abc=a^3+b^3+c^3 Những chương trình này phải đc tối ưu đến hết mức có thể nhưng ko dùng mảng Ko spam Giải thích chương trình rõ ràng Viết chương trình Pascal
2 câu trả lời
Bài 1:
Chương trình:
Program FNG;
Uses crt;
Var a,b,BCNN: longint;
Begin
Clrscr;
Write('Nhap a, b: '); Readln(a,b);
BCNN:=a*b;
While a<>b do
If a>b then a:=a-b
Else If b>a then b:=b-a;
Writeln('UCLN: ',a);
Write('BCNN: ',BCNN div a);
Readln
End.
Ý tưởng: Dùng thuật toán trừ khử nhau. Khi nào a khác b thì lấy số lớn hơn trừ số bé hơn, khi kết thúc câu lệnh, UCLN = a = b
BCNN = a*b div UCLN
Bài 2:
Chương trình:
Program FNG;
Uses crt;
Var a,b,c,d,min,max: longint;
Begin
Clrscr;
Write('Nhap a, b, c, d: '); Readln(a,b,c,d);
max:=a; min:=a;
If b>max then max:=b;
If c>max then max:=c;
If d>max then max:=d;
If b<min then min:=b;
If c<min then min:=c;
If d<min then min:=d;
Writeln('Max = ',max);
Write('Min = ',min);
Readln
End.
Ý tưởng: Gán max = a, so sánh các số còn lại với max. Nếu lớn hơn max thì gán max = số đó
Gán min = a, so sánh các số còn lại với min. Nếu nhỏ hơn min thì gán min = số đó
Bài 3:
Chương trình:
Program FNG;
Uses crt;
Var a,b,c: 0..9;
Begin
Clrscr;
For a:=1 to 9 do
For b:=0 to 9 do
For c:=0 to 9 do
If sqr(a)*a+sqr(b)*b+sqr(c)=a*100+b*10+c then Writeln(a,b,c);
Readln
End.
Ý tưởng: Cho a chạy từ 1 đến 9 (Vì chữ số đầu tiên không thể bằng 0) và b, c chạy từ 0 đến 9.
Nếu a*100+b*10+c (=abc) = a^3 + b^3 + c^3 thì xuất ra
1/ Program Hotboy ;
Uses crt;
var a,b,Ni,Nh: integer;
begin
Write('nhap so a'); readln(a);
Write('nhap so b'); readln(b);
Nh:=a*b;
While a<>b do If a>b then a:=a-b else b:=b-a;
Ni:=a;
Nh:=Nh div Ni;
write('uoc chung lon nhat la',Ni,'Boi chung nho nhat la',Nh);
Readln
end.
2/Program Hotboy ;
Uses crt;
Var a,max,min: real;
Begin
Clrscr;
Write('Nhap so thu nhat:');readln(a);Max:=a; Min:=a
Write('Nhap so thu hai:');readln(a);
if a>=Max then Max:=a;
if a<=Min then Min:=a;
Write('Nhap so thu ba:');readln(a);
if a>=Max then Max:=a;
if a<=Min then Min:=a;
Write('Nhap so thu tu:');readln(a);
if a>=Max then Max:=a;
if a<=Min then Min:=a;
Write('So lon nhat la:',Max:6:3,'so nho nhat la',Min:6:3);
readln
end.
3/
Program Hotboy ;
Uses crt;
Var a,b,c: 0..9;
Begin
Clrscr;
For a:=1 to 9 do
For b:=0 to 9 do
For c:=0 to 9 do
If sqr(a)*a+sqr(b)*b+sqr(c)=a*100+b*10+c
then Writeln(a,b,c);
Readln
End.