Bài 1: Phân số tối giản. Cho 2 số nguyên dương A, B (1 ≤ A, B ≤ 109). Hãy tìm phân số tối giản của phân số . Dữ liệu vào: (PSTG.INP) + Dòng 1: Ghi hai số tự nhiên A và B, mỗi số cách nhau ít nhất một ký tự trắng. Dữ liệu ra: (PSTG.OUT) + Dòng 1: Ghi hai số tự nhiên tương ứng là tử số và mẫu số của phân số tối giản. Ví dụ: PSTG.INP PSTG.OUT 25 30 5 6 16 21 16 21
2 câu trả lời
program pstg;
uses crt;
var a,b,i,u : integer;
f : text;
BEGIN
clrscr;
assign(f,'PSTG.INP');
reset(f);
read(f, a);
read(f, b);
u:=1;
for i:= 1 to a do if ((a mod i)=0) and ((b mod i)=0) and (i>u) then u:=i;
a:= a div u;
b:= b div u;
assign(f,'PSTG.OUT');
rewrite(f);
write(f, a,' ',b);
close(f);
END.
uses crt;
var i,a,b:longint; d:text;
begin
clrscr;
assign(d,'PSTG.inp');reset(d);
readln(d,a,b);
close(d);
assign(d,'PSTG.OUT');rewrite(d);
i:=a;
while(a mod i<>0)or(b mod i<>0)do dec(i);
writeln(d,a div i,' ',b div i);
close(d);
end.
///////////////////////////////////////////////
Giải thích:
Chỗ dòng while đó là mình cho i là bằng a(ucln thì luôn bé hơn hơn hoặc bàng 1 tronng 2 số)
Giảm cho đến khi i là UC của 2 số
Chúc bạn hộc tốt!!!!!
Có gì không hiêu hay code có chỗ nào chưa hợp lí thì để lại bình luận nha:))))