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:))))

Câu hỏi trong lớp Xem thêm