2024蓝桥杯每日一题(最大公约数)

备战2024年蓝桥杯 -- 每日一题
Python大学A组

        试题一:公约数
        试题二:最大公约数
        试题三:等差数列
        试题四:最大比例
        试题五:Hankson的趣味题


试题一:公约数

【题目描述】

        给定两个正整数 a 和 b。你需要回答 q 个询问。每个询问给定两个整数 l,r,你需要找到最大的整数 x,满足:

  1. x 是 a 和 b 的公约数。
  2. l≤x≤r。

【输入格式】

        第一行包含两个整数 a,b。

        第二行包含一个整数 q。

        接下来 q 行,每行包含两个整数 l,r。

【输出格式】

        每个询问输出一行答案,即满足条件的最大的 x,如果询问无解,则输出 −1。

【数据范围】

【输入样例】

9 27
3
1 5
10 11
9 11

【输出样例】

3
-1
9

【解题思路】

        a和b的公约数一定是a,b最大公因数的约数。所以直接枚举出gcd(a,b)的所有约数,然后找l,r范围内的最大的一个。

【Python程序代码】

from math import *
a,b = map(int,input().split())
ca,cb = [],[]
i = 1
while i*i<=a:if a%i==0:ca.append(i)if a//i !=i:ca.append(a//i)i += 1
i = 1
while i*i<=b:if b%i==0:cb.append(i)if b//i !=i:cb.append(b//i)i += 1
ca.sort(); cb.sort()
con = []
for i in ca:if i in cb:con.append(i)
con.sort()
q = int(input())
#print(con)
for _ in range(q):a,b = map(int,input().split())l,r = 0,len(con)-1while l<r:mid = (l+r)>>1if con[mid]>=a:r=midelse:l=mid+1ll,rr=0,len(con)-1while ll<rr:mid = (ll+rr+1)>>1if con[mid]<=b:ll=midelse:rr=mid-1#print("r = %d rr = %d"%(r,rr))if con[r]>=a and con[rr]<=b:if con[r]<=b and con[rr]>=a:print(max(con[r],con[rr]))elif con[r]<=b and con[rr]<a:print(con[r])elif con[r]>b and con[rr]>=a:print(con[rr])else:print(-1)else:print(-1)

试题二:最大公约数

【题目描述】

        给定 n对正整数 ai,bi,请你求出每对数的最大公约数。

【输入格式】

        第一行包含整数 n。

        接下来 n行,每行包含一个整数对 ai,bi。

【输出格式】

        输出共 n 行,每行输出一个整数对的最大公约数。

【数据范围】

        1≤n≤105,
        1≤ai,bi≤2×109

【输入样例】

2
3 6
4 6

【输出样例】

3
2

【解题思路】

        模板题

【Python程序代码】

from math import *
def gcd1(a,b):if b==0:return areturn gcd1(b,a%b)
n = int(input())
for i in range(n):a,b = map(int,input().split())print(gcd(a,b))

试题三:等差数列

【题目描述】

        数学老师给小明出了一道等差数列求和的题目。但是粗心的小明忘记了一部分的数列,只记得其中 N 个整数。现在给出这 N 个整数,小明想知道包含这 N 个整数的最短的等差数列有几项?

【输入格式】

        输入的第一行包含一个整数 N。

        第二行包含 N 个整数 A1,A2,⋅⋅⋅,AN。(注意 A1∼AN 并不一定是按等差数列中的顺序给出)

【输入格式】

        输出一个整数表示答案。

【数据范围】

        2≤N≤100000
        0≤Ai≤109

【输入样例】

5
2 6 4 10 20

【输出样例】

10

【解题思路】

        排序后,求出相邻数差的最大公约数

【Python程序代码】

from math import *
n = int(input())
a = list(map(int, input().split()))
a.sort()
d = a[1]-a[0]
if d==0:print(len(a))
else:for i in range(1,n):d = min(d,gcd(a[i]-a[i-1],d))print( (a[-1]-a[0])//d+1 )

试题四:最大比例

【题目描述】

        X星球的某个大奖赛设了 M 级奖励。每个级别的奖金是一个正整数。并且,相邻的两个级别间的比例是个固定值。也就是说:所有级别的奖金数构成了一个等比数列。比如:16,24,36,54,其等比值为:3/2。现在,我们随机调查了一些获奖者的奖金数。请你据此推算可能的最大的等比值。

【输入格式】

        第一行为数字 N ,表示接下的一行包含 N 个正整数。

        第二行 N 个正整数 Xi,用空格分开,每个整数表示调查到的某人的奖金数额。

【输出格式】

        一个形如 A/B 的分数,要求 A、B 互质,表示可能的最大比例系数。

【输入样例】

3
1250 200 32

【输出样例】

25/4

【解题思路】

        先排个序,然后分子分母分别除以a[0],b[0]。然后分子分母序列进行辗转相减法,由于是指数上的运算应写成除法。

【Python程序代码】

from math import *
n = int(input())
s = list(map(int,input().split()))
s = list(set(s))
s.sort()
a,b = [],[]
for i in range(1,len(s)):co = gcd(s[i],s[0])a.append(s[i]//co)b.append(s[0]//co)
up,down = a[0],b[0]
def gcd_sub(a,b):if a<b:a,b=b,aif b==1:return areturn gcd_sub(b,a//b)
for i in range(1,len(a)):up = gcd_sub(up,a[i])down = gcd_sub(down,b[i])
print("%d/%d"%(up,down))

试题五:Hankson的趣味题

【题目描述】

        Hanks 博士是 BT(Bio-Tech,生物技术)领域的知名专家,他的儿子名叫 Hankson。现在,刚刚放学回家的 Hankson 正在思考一个有趣的问题。今天在课堂上,老师讲解了如何求两个正整数 c1 和 c2的最大公约数和最小公倍数。现在 Hankson 认为自己已经熟练地掌握了这些知识,他开始思考一个“求公约数”和“求公倍数”之类问题的“逆问题”,这个问题是这样的:已知正整数 a0,a1,b0,b1,设某未知正整数 x 满足:

  1. x 和 a0的最大公约数是 a1;
  2. x 和 b0的最小公倍数是 b1。

        Hankson 的“逆问题”就是求出满足条件的正整数 x。但稍加思索之后,他发现这样的 x 并不唯一,甚至可能不存在。因此他转而开始考虑如何求解满足条件的 x 的个数。请你帮助他编程求解这个问题。

【输入格式】

        输入第一行为一个正整数 n,表示有 n 组输入数据。

        接下来的 n 行每行一组输入数据,为四个正整数 a0,a1,b0,b1,每两个整数之间用一个空格隔开。

        输入数据保证 a0能被 a1 整除,b1 能被 b0 整除。

【数据范围】

        1≤n≤2000,
        1≤a0,a1,b0,b1≤2∗109

【输入样例】

2
41 1 96 288
95 1 37 1776

【输出样例】

6
2

【解题思路】

        首先x一定是b1的约数,所以直接枚举b1的约数,判断是否满足那两个条件。

【Python程序代码】

from math import *
import sys
input = sys.stdin.readline
n = int(input())
for i in range(n):a0,a1,b0,b1 = map(int,input().split())tep = []i = 1while i*i<=b1:if b1%i==0:tep.append(i)if b1//i!=i:tep.append(b1//i)i += 1res = 0for x in tep:if gcd(x,a0)==a1 and x*b0//gcd(x,b0)==b1:res+=1print(res)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/625522.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

呵护童心:儿童情感测试的关怀指南

引言&#xff1a; 儿童的情感健康对于其成长和发展至关重要。情感测试作为了解和评估儿童情感状态的重要工具&#xff0c;需要在专业人士的指导下进行&#xff0c;并且需要家长的配合和关注。本文将探讨儿童情感测试的注意事项&#xff0c;以期为儿童的情感健康提供更全面的保障…

记【k8s】:访问 Prometheus UI界面:kubernetes-etcd (0/1 up) Error : out of bounds

记【k8s】&#xff1a;访问 Prometheus UI界面&#xff1a;kubernetes-etcd &#xff08;0/1 up&#xff09; Error &#xff1a; out of bounds 1、报错详情2、解决方法 &#x1f496;The Begin&#x1f496;点点关注&#xff0c;收藏不迷路&#x1f496; 出现 “out of bound…

街景图片语义分割后像素类别提取,用于计算各种指标。

语义分割代码见之前博文&#xff08;免费&#xff09;&#xff1a;deeplabv3街景图片语义分割&#xff0c;无需训练模型&#xff0c;看不懂也没有影响&#xff0c;直接使用。cityscapes 语义分割之后&#xff0c;如下图&#xff0c;想要统计各类像素所占的比例&#xff0c;用于…

用于密集视觉冲击的紧凑三维高斯散射Compact 3D Gaussian Splatting For Dense Visual SLAM

Compact 3D Gaussian Splatting For Dense Visual SLAM 用于密集视觉冲击的紧凑三维高斯散射 Tianchen Deng 邓天辰11Yaohui Chen 陈耀辉11Leyan Zhang 张乐妍11Jianfei Yang 杨健飞22Shenghai Yuan 圣海元22Danwei Wang 王丹伟22Weidong Chen 陈卫东11 Abstract 摘要 …

模仿银行系统的极简Java三层结构应用——存钱功能的实现

一&#xff0c;前提&#xff1a; 我们上次做了一个简易的银行系统&#xff0c;初步认识了java结构&#xff0c;目前该系统可以输入要用的数据并且输出。 二&#xff0c;目标&#xff1a; 我们这次的目标是实现一个简易的存钱功能&#xff0c;并输出存钱后的余额&#xff0c;…

使用docker配置DSP-SLAM

一.Docker环境配置 1.简单介绍 –docker容器技术–。 简单理解&#xff1a;Anaconda用于隔离不同的python环境&#xff1b;docker可以理解成在你的机器里面安装了一个独立的系统&#xff0c;因此它可以隔离不同的CUDA环境&#xff0c;还有着独立的文件系统&#xff0c;防止别…

【中级软件设计师】上午题08-UML(下):序列图、通信图、状态图、活动图、构件图、部署图

上午题08-UML 1 序列图2 通信图3 状态图3.1 状态和活动3.2 转换和事件 4 活动图5 构件图&#xff08;组件图&#xff09;6 部署图 UML图总和 静态建模&#xff1a;类图、对象图、用例图 动态建模&#xff1a;序列图&#xff08;顺序图&#xff0c;时序图&#xff09;、通信图&a…

百度智能云万源全新一代智能计算操作系统发布:引领AI新纪元,开启智能未来

随着科技的迅猛发展&#xff0c;人工智能&#xff08;AI&#xff09;逐渐渗透到我们生活的每个角落&#xff0c;为人类社会带来前所未有的变革。在这场科技革命的浪潮中&#xff0c;百度作为中国AI领域的领军企业&#xff0c;始终站在技术创新的前沿&#xff0c;不断引领行业发…

AI智能体技术突破:引领科技新浪潮

AI智能体技术突破&#xff1a;引领科技新浪潮 基于大模型的 AI Agent 工作流基于大模型的 AI Agent 工作流效果AI Agent 的四种设计模式Reflection 反思设计模式Tool use 工具使用设计模式Planning 规划设计模式Multiagent collaboration 多智能体协作设计模式 吴恩达在红杉美国…

4.16

1.总结keil5下载代码和编译代码需要注意的事项 1.&#xff09;仿真器设置&#xff1a; 点击魔术棒&#xff0c;选择debug选项&#xff0c;找到使用的仿真器&#xff0c;选择ST-LINK仿真器&#xff0c;点击setting&#xff0c;选择flash download ,勾选reset and run,选择pack…

网络协议——IS-IS协议详解

1. IS-IS是什么 IS-IS是一种基于链路状态并使用最短路径优先算法进行路由计算的一种IGP协议。IS-IS属于内部网关协议&#xff0c;用于自治系统内部。IS-IS是一种链路状态协议&#xff0c;使用最短路径优先算法进行路由计算。 2. 应用场景&#xff08;园区网和骨干网&#xff0…

工业物联网让“制造”变成“智造”!——青创智通

工业物联网解决方案-工业IOT-青创智通 随着科技的不断进步和工业的持续发展&#xff0c;物联网&#xff08;IoT&#xff09;技术的出现为制造业带来了前所未有的变革。工业物联网&#xff08;IIoT&#xff09;作为物联网技术在工业领域的应用&#xff0c;正在逐渐改变传统的制…