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

news2024/11/22 10:15:05

备战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)-1
    while l<r:
        mid = (l+r)>>1
        if con[mid]>=a:r=mid
        else:l=mid+1
    ll,rr=0,len(con)-1
    while ll<rr:
        mid = (ll+rr+1)>>1
        if con[mid]<=b:ll=mid
        else: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 a
    return 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,a
    if b==1:return a
    return 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 = 1
    while i*i<=b1:
        if b1%i==0:
            tep.append(i)
            if b1//i!=i:tep.append(b1//i)
        i += 1
    res = 0
    for x in tep:
        if gcd(x,a0)==a1 and x*b0//gcd(x,b0)==b1:res+=1
    print(res)

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

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

相关文章

cesium加载高层级离线影像地图瓦片(天地图、19级Arcgis)

实际加载效果如图&#xff1a; 1、下载离线地图瓦片方式&#xff08;多种任选其一&#xff0c;个人倾向于Qgis工具&#xff09;&#xff1a; 方式1、采用第三方下载工具如&#xff1a;91卫图、水经注、全能电子地图下载器、bigemap等等。&#xff08;这些有的下载层级不够&…

服务器数据恢复—xfs文件系统节点、目录项丢失的数据恢复案例

服务器数据恢复环境&#xff1a; EMC某型号存储&#xff0c;该存储内有一组由12块磁盘组建的raid5阵列&#xff0c;划分了两个lun。 服务器故障&#xff1a; 管理员为服务器重装操作系统后&#xff0c;发现服务器的磁盘分区发生改变&#xff0c;原来的sdc3分区丢失。由于该分区…

【C语言】每日一题,快速提升(2)!

&#x1f525;博客主页&#x1f525;&#xff1a;【 坊钰_CSDN博客 】 欢迎各位点赞&#x1f44d;评论✍收藏⭐ 题目&#xff1a;杨氏矩阵 有一个数字矩阵&#xff0c;矩阵的每行从左到右是递增的&#xff0c;矩阵从上到下是递增的&#xff0c;请编写程序在这样的矩阵中查找某个…

Ubuntu 部署ChatGLM3大语言模型

Ubuntu 部署ChatGLM3大语言模型 ChatGLM3 是智谱AI和清华大学 KEG 实验室联合发布的对话预训练模型。 源码&#xff1a;https://github.com/THUDM/ChatGLM3 部署步骤 1.服务器配置 Ubuntu 20.04 8核(vCPU) 32GiB 5Mbps GPU NVIDIA T4 16GB 硬盘 100GiB CUDA 版本 12.2.2/…

从汇编代码理解数组越界访问漏洞

数组越界访问漏洞是 C/C 语言中常见的缺陷&#xff0c;它发生在程序尝试访问数组元素时未正确验证索引是否在有效范围内。通常情况下&#xff0c;数组的索引从0开始&#xff0c;到数组长度减1结束。如果程序尝试访问小于0或大于等于数组长度的索引位置&#xff0c;就会导致数组…

Python 物联网入门指南(八)

原文&#xff1a;zh.annas-archive.org/md5/4fe4273add75ed738e70f3d05e428b06 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 第三十章&#xff1a;制作机械臂 最后&#xff0c;我们终于到达了大多数人自本书开始以来就想要到达的地方。制作一个机械臂&#xff01;在…

pip如何查看Python某个包已发行所有版本号?

以matplotlib包为例子&#xff0c; pip install matplotlib6666 6666只是胡乱输入的一个数&#xff0c;反正输入任意一个不像版本号的数字都可以&#xff5e; matplotlib所有版本号如下&#xff0c; 0.86, 0.86.1, 0.86.2, 0.91.0, 0.91.1, 1.0.1, 1.1.0, 1.1.1, 1.2.0, 1.2.1…

【问题处理】银河麒麟操作系统实例分享,oom分析

1.问题现象描述 服务器数据库被oomkill掉&#xff0c;但是mem查看只占用了不到60%。 2.问题分析 2.1.oom现象分析 从下面的日志信息&#xff0c;可以看到chmod进程是在内核采用GFP_KERNEL|__GFP_COMP分配order3也就是2的3次方&#xff0c;8个连续页的时候&#xff0c;因进入…

如何使用Git-Secrets防止将敏感信息意外上传至Git库

关于Git-Secrets Git-secrets是一款功能强大的开发安全工具&#xff0c;该工具可以防止开发人员意外将密码和其他敏感信息上传到Git库中。 Git-secrets首先会扫描提交的代码和说明&#xff0c;当与用户预先配置的正则表达式模式匹配时&#xff0c;便会阻止此次提交。该工具的优…

字体反爬积累知识

目录 一、什么是字体反扒 二、Unicode编码 三、利用font包获取映射关系 一、什么是字体反扒 字体反爬是一种常见的反爬虫技术&#xff0c;它通过将网页中的文本内容转换为特殊的字体格式来防止爬虫程序直接获取和解析文本信息。字体反爬的原理是将常规的字符映射到特殊的字…

Linux 磁盘管理和文件系统

硬盘的物理结构&#xff1a; 盘片硬盘有多个盘片&#xff0c;每盘片2面磁头每面一个磁头 硬盘的数据结构&#xff1a; 扇区盘片被分为多个扇形区域&#xff0c;扇区:每个扇区存放512字节的数据&#xff0c;硬盘的最小存储单位磁道同一盘片不同半径的同心圆&#xff0c;是由磁…

C++笔记:类和对象

类和对象 认识类和对象 先来回忆一下C语言中的类型和变量&#xff0c;类型就像是定义了数据的规则&#xff0c;而变量则是根据这些规则来实际存储数据的容器。类是我们自己定义的一种数据类型&#xff0c;而对象则是这种数据类型的一个具体实例。类就可以理解为类型&#xff0c…

「翻版周慧敏」海底骚逆天长腿贺30岁生日

有「翻版周慧敏」之称的苏皓儿&#xff08;Chloe&#xff09;&#xff0c;日前原来已是她迎来30岁生日&#xff0c;她也在IG分享潜水靓相。火红色比坚尼尽骚她的苗条身材和长腿&#xff0c;就连网民也十分佩服&#xff0c;说&#xff1a;「三字头都咁靓好屈机&#xff01;」 Ch…

MySQL 核心模块揭秘 | 14 期 | 回滚整个事务

回滚整个事务要怎么清除 binlog 日志&#xff0c;InnoDB 又会进行哪些操作&#xff1f; 作者&#xff1a;操盛春&#xff0c;爱可生技术专家&#xff0c;公众号『一树一溪』作者&#xff0c;专注于研究 MySQL 和 OceanBase 源码。 爱可生开源社区出品&#xff0c;原创内容未经授…

电商价格监测合规性探讨

品牌在做控价、数据分析的过程中&#xff0c;都需要先有数据作为支撑&#xff0c;也就是说要先采集数据&#xff0c;价格监测也是如此&#xff0c;监测的基础是采集&#xff0c;现在主流的采集形式是爬虫采集&#xff0c;可以理解为人工采集的升级版&#xff0c;以机器代替人工…

Python基于深度学习的车辆特征分析系统

博主介绍&#xff1a;✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;…

西晋从建立到灭亡51年历史

西晋的建立&#xff0c;也标志着三国时期的结束&#xff0c;也开启了中国历史上的一个新时代。下面让我们来揭开西晋从建立到灭亡51年的历史。 1、高平陵事变 曹丕去世后&#xff0c;魏明帝曹睿继位&#xff0c;但曹睿却英年早逝&#xff0c;幼子曹芳继位。 司马懿受曹睿托孤…

微服务之网关路由

一、概述 1.1认识网关 什么是网关&#xff1f; 顾明思议&#xff0c;网关就是网络的关口。数据在网络间传输&#xff0c;从一个网络传输到另一网络时就需要经过网关来做数据的路由和转发以及数据安全的校验。 更通俗的来讲&#xff0c;网关就像是以前园区传达室的大爷。 外…

vue 常用的日历排班,带农历显示组件(2024-04-16)

显示当前月日历组件&#xff0c;里面带农历或节日显示 后面可以丰富一些国家法定节假期的业务需求 代码 js-calendar.js 文件 var lunarInfo [0x04bd8, 0x04ae0, 0x0a570, 0x054d5, 0x0d260, 0x0d950, 0x16554, 0x056a0, 0x09ad0, 0x055d2, //1900-19090x04ae0, 0x0a5b6, 0…

了解 Unity AI:从初学者到高级的综合指南

游戏中的AI是什么? 游戏中的人工智能是指利用人工智能技术使视频游戏中的非玩家角色和实体智能地行动、做出决策、对游戏环境做出反应,并提供引人入胜的动态游戏体验。什么是NPC? NPC 代表“非玩家角色”。NPC 是视频游戏、角色扮演游戏中不受人类玩家控制的角色。它们是计算…