Cho một phân số có tử số là 𝑎 và mẫu số là 𝑏. Hãy chuyển phân số về dạng hỗn số gồm phần nguyên, tử số và mẫu số ở dạng tối giản. Dữ liệu vào: Tệp văn bãn HONSO.INP gồm hai số nguyên dương là 𝑎 và 𝑏 (𝑎, 𝑏 ≤ 10^9) ghi cách nhau một dấu cách. Kết quả: Ghi ra tệp văn bản HONSO.OUT gồm ba số nguyên n, t và m tương ứng là phần nguyên, tử số và mẫu số. Nếu bài toán không có nghiệm thì ghi số -1. HONSO.INP HONSO.OUT 12 9 1 1 3 3 0 -1
2 câu trả lời
uses crt;
var a, b: longint;
function gcd(a, b: longint): longint;
var r: longint;
begin
a:=abs(a); b:=abs(b);
while b <> 0 do
begin
r:=b;
b:=a mod b;
a:=r;
end;
exit(a);
end;
begin
clrscr;
read(a, b);
if b = 0 then write(-1)
else begin
write(a div b, ' ');
write((a mod b) div gcd(a mod b, b), ' ', b div gcd(a mod b, b));
end;
readln; readln;
end.
uses crt; type int = longint; var a, b, tmp: int; function gcd(a, b: int): int; begin a:=abs(a); b:=abs(b); while a * b <> 0 do begin a:=a mod b; if a <> 0 then b:=b mod a; end; exit(a + b); end; begin clrscr; readln(a, b); if b = 0 then begin write(-1); exit; end; write(a div b, #32); a:=a mod b; tmp:=gcd(a, b); a:=a div tmp; b:=b div tmp; write(a, ' ', b); readln; end. // (˵¬‿¬˵)