蓝桥杯3525 公因数匹配 | 枚举+数学

题目传送门


这个题目是一个数学题,由于只需要找到存在大于1的公因数的两数,所以比较方便的做法是统计每一个数的(质)因数。可以通过筛法统计质因数降低复杂度,但是直接枚举因数也可以满足要求。使用字典记录每个因数出现的位置,由于记录下标的有序性,可以直接遍历得到i、j最小的组。


python 复制代码
from collections import defaultdict
dic = defaultdict(list)
n = int(input())
a = list(map(int, input().split()))

for i in range(0, n):
    for j in range(2, int(a[i]**0.5)+1):
        if a[i] % j == 0:
            dic[j].append(i+1)
            dic[a[i]//j].append(i+1)
    dic[a[i]].append(i + 1)

mini = 10**5+5
minj = 10**5+5
for it in dic.values():
    if len(it) > 1:
        if mini > it[0]:
            mini = it[0]
            minj = it[1]
        elif mini == it[0]:
            minj = min(it[1], minj)
print(mini, minj)

END✨


相关推荐
Csvn11 小时前
🌟 LangChain 30 天保姆级教程 · Day 13|OutputParser 进阶!让 AI 输出自动转为结构化对象,并支持自动重试!
python·langchain
小O的算法实验室11 小时前
2026年ASOC,基于深度强化学习的无人机三维复杂环境分层自适应导航规划方法,深度解析+性能实测
算法·无人机·论文复现·智能算法·智能算法改进
一轮弯弯的明月12 小时前
贝尔数求集合划分方案总数
java·笔记·蓝桥杯·学习心得
cch891812 小时前
Python主流框架全解析
开发语言·python
sg_knight12 小时前
设计模式实战:状态模式(State)
python·ui·设计模式·状态模式·state
好运的阿财12 小时前
process 工具与子agent管理机制详解
网络·人工智能·python·程序人生·ai编程
张張40812 小时前
(域格)环境搭建和编译
c语言·开发语言·python·ai
weixin_4235339912 小时前
【Windows11离线安装anaconda、python、vscode】
开发语言·vscode·python
郭涤生13 小时前
STL vector 扩容机制与自定义内存分配器设计分析
c++·算法
༾冬瓜大侠༿13 小时前
vector
c语言·开发语言·数据结构·c++·算法