Rút gọn phân số

Đề bài

Mô tả

Một phân số được biểu diễn bằng hai tập số nguyên dương: tích các số trong tập thứ nhất là tử số, tích các số trong tập thứ hai là mẫu số. Cách biểu diễn này giúp làm việc với những phân số có tử và mẫu cực lớn, nhưng lại thiếu mất phép rút gọn.

Cho một phân số ở dạng biểu diễn trên, hãy in ra một cách biểu diễn của phân số đó sau khi đã rút gọn tối giản.

Số lượng phần tử của hai tập in ra không nhất thiết phải bằng nm. Nếu có nhiều đáp án hợp lệ, in ra bất kỳ đáp án nào.

Dữ liệu vào

  • Dòng đầu chứa hai số nguyên nm: số lượng phần tử của tập tử số và tập mẫu số.
  • Dòng thứ hai chứa n số nguyên a1,a2,,an: các số nhân với nhau tạo thành tử số.
  • Dòng thứ ba chứa m số nguyên b1,b2,,bm: các số nhân với nhau tạo thành mẫu số.

Dữ liệu ra

  • Dòng đầu chứa hai số nguyên noutmout với 1nout,mout105.
  • Dòng thứ hai chứa nout số nguyên tạo thành tử số của phân số đã rút gọn.
  • Dòng thứ ba chứa mout số nguyên tạo thành mẫu số của phân số đã rút gọn.

Mọi giá trị in ra phải thoả mãn 1aout,i,bout,i107. Phân số in ra phải bằng phân số ban đầu và phải tối giản, nghĩa là không tồn tại số nguyên x>1 chia hết cả tử số lẫn mẫu số của nó.

Ràng buộc

  • 1n,m105
  • 1ai,bi107

Ví dụ

Input Output Giải thích
4 3
2 5 10 20
100 1 3
4 3
1 1 1 20
1 1 3
Tử số là 2·5·10·20=2000, mẫu số là 100·1·3=300. Rút gọn 2000300 cho gcd=100 được 203. Đáp án in ra có tích tử 1·1·1·20=20 và tích mẫu 1·1·3=3. Đáp án 1 3
20
1 1 3 cũng được chấp nhận.
3 2
100 5 2
50 10
3 2
1 1 2
1 1
Tử số là 1000, mẫu số là 500, rút gọn được 21. Đáp án in ra có tích tử bằng 2 và tích mẫu bằng 1.

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0