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.mzph.cn/news/822387.shtml

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

相关文章

小红书搜索团队提出新解码策略,降低大模型推理成本

如何让大语言模型&#xff08;LLMs&#xff09;“智能涌现”&#xff1f;关键技术之一是思维链&#xff08;Chain of Thought&#xff0c;CoT&#xff09;&#xff0c;它通过引导大模型&#xff0c;一步一步模拟人类思考过程&#xff0c;可有效增强大模型的逻辑推理能力。 而自…

redis7 源码调试 服务端处理客户端./redis-cli连接 指令执行过程

redis7 源码调试 服务端处理客户端./redis-cli连接 指令执行过程 ##redis-cli客户端发起 ./redis-cli 客户端连接 指令 ##redis网络请求 1、AE_READABLE事件 2、客户端fd 3、创建文件事件 4、添加客户端cfd读写事件 5、处理读事件AE_READABLE 6、回调函数处理连接请求 rea…

【Phytium】飞腾D2000 UEFI/EDK2 适配 RTC(IIC SD3077)

文章目录 0. env1. 软件2. 硬件 10. 需求1. 硬件2. 软件 20. DatasheetCPURTC 30. 调试步骤1. 硬件环境搭建2. UEFI 开发环境搭建3. 修改步骤1. UEFI 中使能RTC驱动、配置RTC信息等1.1 使能RTC驱动1.2 修改RTC对应的IIC配置信息1.3 解决驱动冲突1.4 验证波形 2. 修改对应RTC驱动…

【二分查找】Leetcode 74. 搜索二维矩阵【中等】

搜索二维矩阵 给你一个满足下述两条属性的 m x n 整数矩阵&#xff1a; 每行中的整数从左到右按非严格递增顺序排列。每行的第一个整数大于前一行的最后一个整数。 给你一个整数 target &#xff0c;如果 target 在矩阵中&#xff0c;返回 true &#xff1b;否则&#xff0c…

LeetCode 1.两数之和(HashMap.containsKey()、.get、.put操作)

给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中找出 和为目标值 target 的那 两个 整数&#xff0c;并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是&#xff0c;数组中同一个元素在答案里不能重复出现。 你可以按任意顺序返回…

深入掌握k8s核心概念--Pod(二)

详解Pod的配置管理与调度特性等剖析 Kubernetes 中 Pod 的配置管理&#xff08;ConfigMap&#xff09;、调度策略、回滚与扩缩容详解一、Pod 配置管理&#xff1a;ConfigMap创建 ConfigMap 示例使用 ConfigMap 的 Pod 示例 二、玩转 Pod 调度&#xff1a;Kubernetes 高级调度策…

1 GBDT:梯度提升决策树

1 前言 前面简单梳理的基本的决策树算法&#xff0c;那么如何更好的使用这个基础算法模型去优化我们的结果是本节要探索的主要内容。 梯度提升决策树&#xff08;Gradient Boosting Decision Trees&#xff09;是一种集成学习方法&#xff0c;通常用于解决回归和分类问题。它通…

DC/DC电源模块直流升压变换器电压控制输出5V12V24V转0-50V80V110V150V180V200V250V300V500V800V1000V

特点 效率高达 75%以上1*2英寸标准封装单电压输出可直接焊在PCB 上工作温度: -40℃~75℃阻燃封装&#xff0c;满足UL94-V0 要求温度特性好电压控制输出,输出电压随控制电压线性变化 应用 GRB 系列模块电源是一种DC-DC升压变换器。该模块电源的输入电压分为&#xff1a;4.5~9V、…

【ElasticSearch】安装

1.官网寻找合适版本下载 这里我选择的是8.11.1 2.解压并启动 然后在浏览器输入http://localhost:9200/&#xff0c;判断是否启动成功 如下所示&#xff0c;则表示启动成功 安装过程中遇到过几个bug&#xff0c;记录在这篇文章中 【ElasticSearch】安装&#xff08;bug篇&am…

六、OpenFeign服务接口调用

一、提问 已经有loadbalancer为什么还要学习OpenFeign? 两个都有道理的话&#xff0c;日常用那个&#xff1f; 二、是什么 OpenFeign是什么 官网翻译 Feign是一个声明性web服务客户端。它使编写web服务客户端变得更容易。使用Feign创建一个接口并对其进行注释。它具有可…

一键生成绘画作品,国内提供的7款AI绘画软件推荐

随着人工智能的迅猛发展&#xff0c;给我们的工作和兴趣带来了极大的便利。尤其是在绘画领域&#xff0c;随着越来越多的AI绘画工具的问世&#xff0c;我们能够以惊人的速度创作出精美的插图和照片。因此&#xff0c;本文将为大家介绍7款备受推崇的AI绘画软件~ 1.爱制作AI 爱制…

连连看游戏页面网站源码,直接使用

可以上传自己喜欢的图片 游戏页面 通关页面 源码免费下载地址抄笔记 (chaobiji.cn)

Java面试题:2024面试全攻略+BTA内部密卷 视频教程+springboot

基础篇 1、 Java语言有哪些特点 1、简单易学、有丰富的类库 2、面向对象&#xff08;Java最重要的特性&#xff0c;让程序耦合度更低&#xff0c;内聚性更高&#xff09; 阿里内部资料 基本类型 大小&#xff08;字节&#xff09; 默认值 封装类 6、Java自动装箱与拆箱 装箱就是…

ChatGPT 可以预测未来吗?

推荐 4月13日的一篇有趣的 paper&#xff0c;特来分享。 &#x1f449; 当前的大型语言模型&#xff08;LLMs&#xff09;具有强大的数据合成和推理能力&#xff0c;但它们在直接预测尚未发生事件的准确性上常常受到限制。传统的预测方法依赖于直接询问模型关于未来的问题。 …

算法思想总结:链表

一、链表的常见技巧总结 二、两数相加 . - 力扣&#xff08;LeetCode&#xff09; class Solution { public:ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {//利用t来存进位信息int t0;ListNode*newheadnew ListNode(0);//创建一个哨兵节点&#xff0c;方便尾插List…

现在新开两融账户融资利率最低可以多少?5%~4.5%

两融是融资和融券的简称&#xff0c;是一种信用交易的方式&#xff0c;可以让投资者在股票市场上放大收益&#xff0c;也放大风险。融资是指投资者向证券公司借入资金&#xff0c;用于买入股票或其他证券&#xff0c;期待价格上涨后卖出&#xff0c;赚取差价&#xff0c;并在约…

记录Python链接mysql数据的增删改查方法

一、添加方法 db pymysql.connect(hostlocalhost,userroot,password123456,dbpython) cursor db.cursor() sql """insert into EMPLOYEEVALUES(3,张,天爱,35,F,8000) """ try:cursor.execute(sql)db.commit() #提交后&#xff0c;数据才会变 …

顺序表(快速上手数据结构)

在介绍ArrayList之前, 我们需要先了解List. List是一个接口,它继承于Collection接口(Collection又继承于最顶层的接口Iterable). 从数据结构的角度来看,List就是一个线性表(Linear List),即n个具有相同类型元素的有限序列, 在该序列上可以执行增删查改等操作. 注意: List是一…

自动化测试之httprunner框架hook函数实操

本篇介绍httprunner中hook函数的使用&#xff0c;以及通过编程能力实现建设自动化测试更全面的场景覆盖 前置&#xff1a; 互联网时代让我们更快的学习到什么是Httprunner 正文&#xff1a; 经过上文了解到这个框架怎么使用之后&#xff0c;我们开始来探讨一下我们为什么要用…

【教程】一个比较良心的C++代码混淆器

这是一个比较良心的C代码混淆器&#xff0c;用于信息竞赛训练和保护代码免受抄袭。本文将介绍这个混淆器的使用方法、混淆效果和已知的一些bug。同时&#xff0c;我们也会给出一些示例来演示混淆器的具体操作。 引言 在信息竞赛训练和实际开发中&#xff0c;保护代码的安全性和…