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.