Ước chung trong đoạn

Đề bài

Mô tả

Cho hai số nguyên dương ab. Với mỗi truy vấn gồm hai số lowhigh, hãy tìm ước chung lớn nhất của ab nằm trong đoạn [low,high] (tính cả hai đầu mút).

Nói cách khác, cần tìm số d lớn nhất sao cho a chia hết cho d, b chia hết cho d, và lowdhigh. Nếu không tồn tại số d như vậy, in ra 1.

Dữ liệu vào

  • Dòng đầu chứa hai số nguyên ab.
  • Dòng thứ hai chứa số nguyên n, số lượng truy vấn.
  • n dòng tiếp theo, mỗi dòng chứa hai số nguyên lowhigh mô tả một truy vấn.

Dữ liệu ra

In ra n dòng, dòng thứ i là kết quả của truy vấn thứ i: ước chung lớn nhất của ab nằm trong đoạn [low,high], hoặc 1 nếu không có.

Ràng buộc

  • 1a,b109
  • 1n104
  • 1lowhigh109

Ví dụ

Input Output Giải thích
9 27
3
1 5
10 11
9 11
3
-1
9
Các ước chung của 9 và 27 là 1, 3, 9. Truy vấn [1, 5]: ước chung lớn nhất trong đoạn là 3. Truy vấn [10, 11]: không có ước chung nào, in -1. Truy vấn [9, 11]: ước chung 9 nằm trong đoạn.
48 72
2
8 29
29 37
24
-1
Ước chung lớn nhất của 48 và 72 là 24; các ước chung là 1, 2, 3, 4, 6, 8, 12, 24. Truy vấn [8, 29]: lớn nhất là 24. Truy vấn [29, 37]: không có ước chung nào trong đoạn.

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