蓝桥杯刷题--python-36

4199. 公约数 - AcWing题库

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")

相关推荐
天真小巫2 小时前
2025.6.27总结
职场和发展
Memories off9 天前
实习/秋招记录:软件开发转AI或安全
职场和发展
一入JAVA毁终身9 天前
针对我的简历模拟面试
面试·职场和发展
挑战者6668889 天前
如何制定团队制度?
职场和发展·项目管理·创业创新
呆呆的小鳄鱼10 天前
leetcode:746. 使用最小花费爬楼梯
算法·leetcode·职场和发展
minos.cpp10 天前
从厨房到代码台:用做菜思维理解iOS开发 - Swift入门篇①
ios·蓝桥杯·swift
YuTaoShao10 天前
【LeetCode 热题 100】42. 接雨水——(解法一)前后缀分解
java·算法·leetcode·职场和发展
岁忧10 天前
第十六届蓝桥杯C/C++程序设计研究生组国赛 国二
c语言·c++·算法·蓝桥杯
呆呆的小鳄鱼10 天前
leetcode:98. 验证二叉搜索树
算法·leetcode·职场和发展
岁忧10 天前
(LeetCode 面试经典 150 题) 80. 删除有序数组中的重复项 II (双指针、栈)
java·c++·算法·leetcode·职场和发展·go