(每日一练)题目名称:凑数

文盲老顾 文盲老顾 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区

给定一组n个正整数,要求每次选其中一个数乘以或除以一个素数(称为一次凑数),问至少需要凑数多少次可以把所有的数都凑成相等。

可以把所有的数都凑成相等需要至少进行的凑数次数t(t>=0)。

周赛57期的新题目,当时没能 ac ,然后,今天随便弄了弄,居然 ac 了,但不明白为什么 ac 的,呵呵

arr = list(map(int,input().split()))
n,m = len(arr),int(max(arr) ** .5 + 1)
ans = 0
for i in range(2,m):
    z = []
    for j in range(n):
        c = 0
        while arr[j] % i == 0:
            c += 1
            arr[j] //= i
        z.append(c)
    ans += sum(z) - min(z) * n
print(ans + n - arr.count(1))
...全文
评论 2
收藏 已收藏
分享
返回顶部
文盲老顾
文盲老顾 新星创作者: 信息安全技术领域 新星创作者: 信息安全技术领域领域专家: 数据库技术领域 领域专家: 数据库技术领域
老顾的一亩三分地 320 成员 160 内容