#PCBBAY0000054. Phân số chính xác của float (Exact Fraction of a Float)

Phân số chính xác của float (Exact Fraction of a Float)

Phân số chính xác của float (Exact Fraction of a Float)

Phiên bản: Phước Hưng OJ Extended

Đề bài

Cho số thực xx được đọc vào kiểu float của Python 3. Hãy tìm hai số nguyên pp và q>0q>0 sao cho x=pqx=\dfrac pq chính xác theo giá trị nhị phân đang lưu, với phân số ở dạng tối giản. Không sử dụng phân số biểu diễn số thập phân lý tưởng của văn bản đầu vào. Kết quả phải tương ứng với x.as_integer_ratio().

Input

Dòng duy nhất chứa số thực hữu hạn xx, được đọc thành Python 3 float.

Output

In hai số nguyên pp và qq trên một dòng, cách nhau một dấu cách; tử số trước, mẫu số dương sau. Phân số phải tối giản.

Subtask

  • Subtask 1 (100 điểm): xx là giá trị float hữu hạn. Mẫu số dương.

Ví dụ

Ví dụ 1

Input

0.5

Output

1 2

Giải thích. Giá trị 0.5=1/20.5=1/2 được biểu diễn chính xác; tử số 11 và mẫu số 22 đã tối giản.

Ví dụ 2

Input

0.1

Output

3602879701896397 36028797018963968

Giải thích. Giá trị thập phân 0.10.1 không có biểu diễn nhị phân hữu hạn. Phân số trong output là phân số tối giản biểu diễn chính xác giá trị float đã lưu, không phải 1/101/10.

Ví dụ 3

Input

1.25

Output

5 4

Giải thích. Vì 1.25=125/100=5/41.25=125/100=5/4 và 55, 44 nguyên tố cùng nhau, chương trình in 5 4.