def gcd(a,b):
while b:
a,b=b,a%b
return a
def init_divisors(a,b):
d=gcd(a,b)
i=1
while i*i<=d:
if d%i==0:
ans.append(i)
if i!=d//i:ans.append(d//i)
i+=1
ans.sort()
a,b=map(int,input().split())
ans=[]
init_divisors(a,b)
q=int(input())
for _ in range(q):
L,R=map(int,input().split())
l=0;r=len(ans)-1
while (l<r):
mid=l+r+1>>1
if ans[mid]<=R:l=mid
else: r=mid-1
if ans[r]>=L:
print(ans[r])
else:
print("-1")
蓝桥杯刷题--python-36
芝士小熊饼干2024-04-07 16:04
相关推荐
尘觉1 天前
面试-浅复制和深复制?怎样实现深复制详细解答007php0071 天前
京东面试题解析:同步方法、线程池、Spring、Dubbo、消息队列、Redis等微笑尅乐1 天前
洗牌算法讲解——力扣384.打乱数组松间沙路hba1 天前
面试过程中的扣分项,你踩过几个?夏鹏今天学习了吗1 天前
【LeetCode热题100(50/100)】岛屿数量墨染点香1 天前
LeetCode 刷题【134. 加油站】这个世界的真神2 天前
【每日算法】 洛谷 P12341 【[蓝桥杯 2025 省 A/Python B 第二场] 消消乐】 2025.10.26LucianaiB2 天前
仓颉语言核心技术解析:如何开发高性能服务端应用