Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <set>
- #include <algorithm>
- #include <cstdio>
- using namespace std;
- int a, b, l ,r;
- set<int, greater<int> > t;
- int main()
- {
- scanf("%d %d", &a, &b);
- a = __gcd(a, b);
- for (int i = 1; i * i <= a; ++i)
- if (a % i == 0)
- {
- t.insert(i);
- t.insert(a / i);
- }
- scanf("%d", &b);
- while (b--)
- {
- scanf("%d %d", &l, &r);
- a = *lower_bound(t.begin(), t.end(), r, greater<int>());
- printf(a > r || a < l ? "-1\n" : "%d\n", a);
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement