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


相关推荐
.小墨迹3 分钟前
Python学习——执行python时,键盘按下ctrl+c,退出程序
linux·开发语言·python·学习·自动驾驶
蓝婷儿11 分钟前
6个月Python学习计划 Day 1
开发语言·python·学习
chicpopoo23 分钟前
Python打卡DAY33
开发语言·python
Bugabooo26 分钟前
python 打卡DAY27
开发语言·python
geneculture1 小时前
《黄帝内经》数学建模与形式化表征方式的重构
人工智能·算法·机器学习·数学建模·重构·课程设计·融智学的重要应用
YUNYINGXIA1 小时前
Python实现Web请求与响应
开发语言·前端·python
Vic101011 小时前
GaussDB(PostgreSQL)查询执行计划参数解析技术文档
算法·哈希算法·gaussdb
flex88882 小时前
一个由微软开源的 Python 工具,用于将多种文件格式转换为 Markdown 格式
开发语言·python·microsoft
小喵要摸鱼2 小时前
【软考向】Chapter 3 数据结构
数据结构·算法·排序算法
2401_863820892 小时前
Python 训练营打卡 Day 31
python