蓝桥杯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✨


相关推荐
一条大祥脚6 分钟前
26 ICPC上海 交互|二分|重心|构造|二分图|贪心|SOSDP|三进制枚举|线性基|字典序贪心|DFS|分块|单侧递归线段树
算法·深度优先·交互·分块·icpc上海站·单侧递归线段树
言乐610 分钟前
Python根据关联词搜索模型
开发语言·人工智能·python·机器学习·django
吹什么轩12 分钟前
数据结构复习:二叉搜索树
数据结构·算法
H.莓飛14 分钟前
【数据结构】堆
linux·数据结构·算法
纪念 22923 分钟前
C++算法(二)
开发语言·c++·算法
lie..32 分钟前
30天从零开始学AI应用开发(Day 16):Embedding 是什么?用人话讲明白“向量检索”
人工智能·算法·embedding
泡海椒4 小时前
JQuick-Excel FORMAT 导出格式实战:日期、金额显示与 TRANSFORM 的边界
前端·python·excel
承渊政道4 小时前
星空组网+Python实战:在另一台电脑上查看CSV报表
运维·开发语言·python·csv·星空组网
LOVE️YOU9 小时前
Python 中 Tuple 为什么有时可 Hash,有时不可 Hash?
开发语言·python·哈希算法
小oo呆9 小时前
【学习心得】迭代器和可迭代对象
开发语言·python