第一题的,根据楼上大哥的思路写出来的,大家看看有没有问题😑,还有感觉会超时。。。 def t1(ls): dt = [{} for _ in range(len(ls))] haset = set() for i in range(len(ls)): num = ls[i] while num % 2 == 0: dt[i][2] = dt[i].get(2, 0) + 1 num //= 2 haset.add(2) j = 3 while j <= num**0.5: if num % j == 0: dt[i][j] = dt[i].get(j, 0) + 1 num //= j haset.add(j) else: j += 2 if num > 3: dt[i][num] = dt[i].get(num, 0) + 1 haset.add(num) ans = 0 for num in haset: odd, even = 0, 0 for dtt in dt: if dtt.get(num, 0) % 2 == 0: even += 1 else: odd += 1 ans += min(even, odd) return dt, ans if __name__ == '__main__': print(t1([1002, 98, 14, 68]))
点赞 1

相关推荐

09-04 21:52
南京大学 Java
牛马人的牛马人生:果然是华五的神
点赞 评论 收藏
分享
天降大厂offer:想从事前端就放前端的技术栈,然后项目描述,还有项目做了什么内容,使用了什么技术解决了什么问题优化了什么性能。然后头像可以不要,在读也可以不要,还有bg的话就不要放课程,写哪个学校什么本科,还有绩点排名(如果高的话),然后就是技术栈写好一点,接下来就是项目(有实习就写实习,没有就到项目),项目放两个好一点的,自己包装一下,然后有参加什么竞赛放两个就好了,接下来就是靠你自己了,毕竟211还是很难容易找的,不像我们学院本
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务