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

leetcode 1390

1390: 四因数

思路一:枚举

我们可以遍历数组 nums 中的每个元素,依次判断这些元素是否恰好有四个因数。对于任一元素 x,我们可以用类似质数判定的方法得到它的因数个数,其本质为:如果整数 x 有因数 y,那么也必有因数 x/y,并且 y 和 x/y 中至少有一个不大于 sqrt(x)。这样我们只需要在 [1, sqrt(x)] 的区间内枚举可能为整数 x 的因数 y,并通过 x/y 得到整数 x 的其它因数。

如果 x 恰好有四个因数,我们就将其因数之和累加到答案中。

class Solution { public: int sumFourDivisors(vector<int>& nums) { int ans=0; for(int x:nums){ int cnt=0,total=0; for(int i=1;i<=sqrt(x);i++){ int j=x/i; if(j*i==x){ if(j==i){ cnt++; total+=i; } else{ cnt+=2; total+=i+j; } } } if(cnt==4) ans+=total; } return ans; } };

进阶:埃拉托斯特尼筛法(埃氏筛)

class Solution { public: int sumFourDivisors(vector<int>& nums) { // C 是数组 nums 元素的上限,C3 是 C 的立方根 int C = 100000, C3 = 46; vector<int> isprime(C + 1, 1); vector<int> primes; // 埃拉托斯特尼筛法 for (int i = 2; i <= C; ++i) { if (isprime[i]) { primes.push_back(i); } for (int j = i + i; j <= C; j += i) { isprime[j] = 0; } } // 通过质数表构造出所有的四因数 unordered_map<int, int> factor4; for (int prime: primes) { if (prime <= C3) { factor4[prime * prime * prime] = 1 + prime + prime * prime + prime * prime * prime; } } for (int i = 0; i < primes.size(); ++i) { for (int j = i + 1; j < primes.size(); ++j) { if (primes[i] <= C / primes[j]) { factor4[primes[i] * primes[j]] = 1 + primes[i] + primes[j] + primes[i] * primes[j]; } else { break; } } } int ans = 0; for (int num: nums) { if (factor4.count(num)) { ans += factor4[num]; } } return ans; } };
http://www.jsqmd.com/news/196761/

相关文章:

  • 无需联网也可语音转写:Fun-ASR离线WebUI本地部署指南
  • 别让垃圾流量污染你的GA4数据:检测、过滤与根治的完整解决方案
  • lvgl界面编辑器操作入门:如何导入资源并显示图标
  • 思维导图生成:口语表达自动梳理逻辑关系
  • 使用vivado完成ego1开发板大作业的核心要点
  • 戏剧剧本创作:演员即兴台词捕捉再加工
  • 国产化替代方案:鲲鹏+昇腾运行Fun-ASR尝试
  • 快速理解JFlash下载在工控系统中的角色
  • 2026年质量好的全铝合金模板厂家选购参考建议 - 行业平台推荐
  • GPU算力变现新路径:部署Fun-ASR语音识别服务引流变现
  • 麦克风权限无法获取?解决Fun-ASR浏览器授权问题
  • 渠道选择调研:经销商合作意愿语音判断
  • Fun-ASR识别历史管理:如何搜索、导出和清理记录
  • Windows下Virtual Serial Port Driver的完整安装指南
  • 信创产业适配:通过长城电脑兼容性测试
  • nanopb在无操作系统环境下的部署详解
  • 基于CAPL的UDS协议开发:CANoe平台实践指南
  • 自动连续筛选软件设计方案
  • Proteus汉化插件安装流程:从零实现中文显示
  • 日程安排同步:说出‘明天下午三点开会’自动加日历
  • 零基础入门:如何在Windows 10和Windows 11上正确部署Multisim环境
  • 2026年热门的巷道智能发酵机器人综合性能榜 - 行业平台推荐
  • 2026年知名的模板高评分品牌推荐(畅销) - 行业平台推荐
  • 电池故障预测算法在电力系统中的优化与应用
  • 购物清单生成:边逛超市边说商品自动记录
  • AHN赋能Qwen2.5:高效处理超长文本的新范式
  • 虚拟数字人交互:Fun-ASR作为语音感知层
  • 股票交易指令:‘买入十手茅台’语音下单验证
  • 从零实现数据审计功能:基于触发器的实践
  • 保险理赔通话分析:关键信息提取自动化