当前位置: 首页 > news >正文

【牛客网-小红的k次方】:避免大数问题

题目描述

小红拿到了一个长为 n 的数组 a,定义数组中所有元素的乘积为 x。小红想知道,最大的满足 x 是 30 的 k 次方的倍数(形式化的,x \mod 30^k = 0)的 k 是多少?

题目链接:小红的k次方_牛客题霸_牛客网

输入格式

  • 第一行输入一个整数 n (1≦n≦2×10^5)

  • 第二行输入 n 个整数 ai (1≦ai≦10^9)

输出格式

  • 输出一个整数,代表最大的 k

示例

输入

4

30 15 2 7

输出

2

问题分析

  1. 数据规模大:n 最大可达2×10^5 ,aᵢ 最大可达10^9

  2. 乘积极大:直接计算所有数的乘积会得到天文数字,远超任何数据类型的范围

  3. 需要高效算法:必须在 O(n) 或 O(n log n) 时间内解决问题

解题思路

第一步:数学转化

30 的质因数分解:

30=2×3×530=2×3×5

30 的 k 次方:

30^k=(2×3×5)^k=2^k×3^k×5^k

第二步:整除条件分析

设数组所有元素的乘积为 x,要使 x 能被 30^k 整除,即:

xmod 30^k=0

这意味着:

  1. x 必须包含至少 k 个因子 2

  2. x 必须包含至少 k 个因子 3

  3. x 必须包含至少 k 个因子 5

第三步:得出关键结论

设数组所有数中:

  • 因子 2 的总个数为 cnt_2

  • 因子 3 的总个数为 cnt_3

  • 因子 5 的总个数为 cnt_5

那么最大的 k 满足:

k≤cnt2 , k≤cnt3 , k≤cnt5

因此:

max k = min⁡(cnt2,cnt3,cnt5)

第四步:算法设计

基于以上分析,我们不需要计算巨大的乘积 x,只需:

  1. 遍历数组中的每个数

  2. 统计每个数中因子 2、3、5 的个数

  3. 累加得到总个数

  4. 取三个总个数的最小值

代码实现

python

n=int(input()) arr=list(map(int,input().split())) a,b,c=0,0,0 for num in arr: while num%2==0: a+=1 num//=2 while num%3==0: b+=1 num//=3 while num%5==0: c+=1 num//=5 k=min(a,b,c) print(k)

复杂度分析

时间复杂度

  • 每个数需要被2、3、5整除若干次

  • 对于每个数,循环次数最多为 log2 ai + log3 ai + log5 ai

  • 总时间复杂度:O(n × log(max(a_i)))

  • 对于 n (1≦n≦2×10^5),完全可行

空间复杂度

  • 只需常数空间存储计数:O(1)

错误反思

错误1:直接计算乘积

问题:乘积 x 可能达到(10⁹)^{2×10⁵} = 10^{9 × 2×10⁵} = 10^{1.8×10⁶},远超任何数据类型范围。

错误2:二分查找法

虽然理论上可以用二分查找 k,但需要计算 30^k 和判断整除关系,同样面临大数问题,且效率不如直接统计。

总结

本题的核心在于:

  1. 数学转化:将整除问题转化为质因数统计问题

  2. 避免大数运算:通过统计因子个数代替实际计算乘积

  3. 理解整除的本质:a 整除 b 意味着 a 的所有质因子在 b 中都以足够的幂次存在

这种"避开直接计算,转为统计特征"的思路在算法竞赛中非常常见,特别是在处理大数、乘积、最大公约数等问题时非常有用。

http://www.jsqmd.com/news/303867/

相关文章:

  • udev 规则
  • 【开源推荐】AgentForce:当 GraphRAG 遇上 Agentic Workflow,打造下一代 AI 智能体平台 - TW
  • 2026年钉钉服务商推荐:基于多行业应用评价,针对数据孤岛与效率痛点精准指南
  • 2026年钉钉服务商推荐:基于多行业应用评价,针对定制开发与数据安全痛点精准指南
  • 2026年青岛全屋定制品牌推荐榜单:基于10大核心指标解析
  • 2026年制氮机厂家最新推荐:vpsa真空变压吸附式工业制氧机、中型工业制氧机、大型工业制氧站、小型工业制氧机选择指南
  • 兜兜英语词根词缀拆解工具:用构词法学英语,让单词记忆有根可循
  • 2026年天虹购物卡回收三种主流方式与难易程度
  • 2026增压器实力厂家新动态:谁在领跑市场?金刚炮升压器/纽荷兰增压器/天龙增压器/欧曼增压器,增压器厂商找哪家
  • 软件工程毕业设计选题指南:基于 Web 管理系统的项目方向解析
  • 2026年锡柴国六涡轮增压器生产厂家优质排行揭秘,农机增压器/福康增压器/威孚增压器,涡轮增压器维修排行
  • 2026年青岛全屋定制品牌推荐:基于环保与耐用性评测,解决居家健康与维护痛点指南
  • 2026专业制氮机公司推荐榜 适配多行业需求
  • 2026年青岛全屋定制品牌推荐:针对大宅与平层场景深度评价,解决交付不确定性与风格割裂痛点
  • 2026年1月卡特涡轮增压器厂商排行榜单,这些厂家值得关注,潍柴p10H.5增压器,涡轮增压器实力厂家怎么选择
  • 亲身经历:XinServer 如何帮我快速交付项目
  • 2026年 最新谷歌商店解决办法,谷歌三件套问题汇总,各种情况都在这里了。
  • 2026年智慧应急一体化综合解决方案 - 全1085页下载
  • 阿姆智创21.5寸平板工控一体机,解锁工业智能新场景
  • 医疗信息化实战项目 | 数字化产科平台(门诊+住院+数据统计)完整源码
  • 国产CAD把试错的成本留在屏幕里
  • 阿姆智创15.6寸触摸工控一体机:赋能自动化工业设备智能升级
  • 红外遥控的价值回归——在智能时代的独特意义
  • 导师推荐!9大AI论文网站测评:研究生科研写作全攻略
  • 2026 雅思考高分必看!雅思网上课程中心辅导机构深度测评推荐,实用选课指南
  • 从桌面到产线:工业级3D打印设备如何重塑现代制造流程
  • aardio开发五子棋游戏,人机对弈
  • 就医陪诊小程序|从软件开发视角看实用度✨
  • 2026年重庆中专学校择校指南 从实力到适配全解析实用攻略
  • 超越金属:工业级增材制造如何重塑传统制造范式