Tính toán (Chọn ĐTQG Phú Thọ 2022-2023 (ngày 2))

Xem dạng PDF

Gửi bài giải

Điểm: 1,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
Input: CAL.INP
Output: CAL.OUT

Dạng bài
Ngôn ngữ cho phép
C++, Pascal, PyPy, Python

Thầy giáo định nghĩa ước chung lớn nhất ~d~ của hai số nguyên dương ~a~ và ~b~ nằm trong đoạn ~[l, r]~ là ước số ~d~ lớn nhất trong các ước của hai số ~a, b~ và ~l \le d \le r~.

Mai được thầy giáo cho hai số nguyên dương ~a, b~ và ~n~ truy vấn. Mỗi truy vấn là một đoạn ~[l, r]~ và Mai phải tìm ra ước chung lớn nhất của 2 số ~a, b~ trong từng đoạn ~[l, r]~ đó. Bạn hãy lập trình giúp Mai giải quyết bài toán trên.

Dữ liệu

Vào từ tệp văn bản CAL.INP:

  • Dòng đầu tiên chứa hai số nguyên ~a~ và ~b~ (~1 \le a, b \le 10^9~);
  • Dòng thứ hai chứa một số nguyên duy nhất ~n~ là số truy vấn (~1 \le n \le 10^5~);
  • ~n~ dòng tiếp theo: mỗi dòng chứa một truy vấn gồm hai số nguyên ~l~ và ~r~ (~1 \le l \le r \le 10^9~).

Kết quả

Đưa ra tệp văn bản CAL.OUT ~n~ dòng. Dòng thứ ~i~ sẽ là kết quả tìm được của truy vấn thứ ~i~ theo dữ liệu vào. Nếu như không tìm được ước chung lớn nhất nào, in ra ~-1~.

Ví dụ

CAL.INP

9 27
3
1 5
10 11
3 11

CAL.OUT

3
-1
9

Giải thích:

  • Ở truy vấn thứ nhất, ước chung của hai số 9 và 27 trong đoạn ~[1, 5]~ có 2 ước số 1 và 3. Do đó ước chung lớn nhất trong đoạn này sẽ là 3;
  • Ở truy vấn thứ ba, ước chung của hai số 9 và 27 trong đoạn ~[3, 11]~ có hai số là 3 và 9. Do đó ước chung lớn nhất sẽ là 9.

Giới hạn

  • Có 40% số test ứng với 40% số điểm của bài có ~1 \le n \le 10^2~, ~1 \le l \le r \le 10^3~;
  • Có 30% số test ứng với 30% số điểm của bài có ~1 \le n \le 10^4~;
  • Có 30% số test ứng với 30% số điểm của bài có ~1 \le n \le 10^5~.

Bình luận

Hãy đọc nội quy trước khi bình luận.


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