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

59.Acwing基础课第870题-简单-约数个数

59.Acwing基础课第870题-简单-约数个数

题目描述

给定\(n\)个正整数 \(a_i\),请你输出这些数的乘积的约数个数,答案对 109+7 取模。

输入格式

第一行包含整数 \(n\)

接下来 \(n\) 行,每行包含一个整数 \(a_i\)

输出格式

输出一个整数,表示所给正整数的乘积的约数个数,答案需对109+7 取模。

输出格式

数据范围
1≤\(n\)​≤100

1≤\(a_i\)≤2×109

输入样例:

3
2
6
8

输出样例:

12

代码:

// 包含标准输入输出头文件(cin/cout依赖)
#include <iostream>
// 算法库(本代码未直接使用,属于通用模板保留)
#include <algorithm>
// 哈希表头文件:用于高效统计质因子的总指数(key=质因子,value=总指数)
#include <unordered_map>
// 向量容器头文件(本代码未直接使用,属于通用模板保留)
#include <vector>// 使用std命名空间,避免重复写std::
using namespace std;// 定义长整型别名LL:防止计算过程中数值溢出(约数个数可能很大,超过int范围)
typedef long long LL;// 常量定义:
// N=110(本代码未使用,仅为模板保留);mod=1e9+7(结果取模的模数,避免数值过大)
const int N = 110, mod = 1e9 + 7;int main()
{int n; // n:输入的正整数的个数(最终求这n个数乘积的约数个数)cin >> n; // 输入n// 哈希表primes:统计n个数乘积的所有质因子及其总指数// key:质因子(如2、3、5);value:该质因子在乘积中的总指数(所有数分解后该质因子的指数和)unordered_map<int, int> primes;// 循环处理每个输入的正整数xwhile (n -- ){int x; // x:当前需要分解质因数的数cin >> x; // 输入x// 分解x的质因数:枚举2到√x的所有数(i <= x/i 等价于 i <= sqrt(x),避免浮点精度误差)for (int i = 2; i <= x / i; i ++ )// 若i是x的质因子,循环除净并统计指数while (x % i == 0){x /= i; // 把x中的质因子i除干净primes[i] ++ ; // 该质因子的总指数+1(累加到哈希表)}// 若循环结束后x>1,说明剩下的x是一个大于√原数的质因子,总指数+1if (x > 1) primes[x] ++ ;}// 约数个数定理:若一个数N的质因数分解为 N = p1^a1 * p2^a2 * ... * pn^an// 则N的约数个数 = (a1+1) * (a2+1) * ... * (an+1)(每个质因子的指数+1后相乘)LL res = 1; // 初始化结果为1(乘法的单位元)// 遍历哈希表中所有质因子及其总指数,计算约数总数for (auto p : primes) // 核心计算:(当前结果) * (该质因子指数+1),结果对mod取模(防止数值溢出)res = res * (p.second + 1) % mod;cout << res << endl; // 输出最终的约数个数(取模后)return 0; // 程序正常结束
}
http://www.jsqmd.com/news/613449/

相关文章:

  • 3步打造跨设备控制中心:无缝切换多系统的高效工作流
  • 服务器部署应用全流程指南
  • 轴向柱塞泵设计(论文+DWG图纸)
  • 深入理解Autofac:探索.NET IoC容器的核心设计与工作原理
  • 5分钟掌握Source Code Pro:让代码阅读体验焕然一新的编程字体
  • RimSort模组管理进阶指南:从冲突诊断到性能优化的系统化方案
  • PHP支付密钥管理危机:硬编码、环境变量泄露、KMS集成失败——4种企业级密钥分发方案对比实测
  • Chrono车辆模块实战教程:从概念到完整车辆仿真的完整指南
  • 终极指南:如何用MedSAM实现3D医学图像分割与器官重建
  • 2026年4月最新朗格官方售后服务中心网点考察报告(新址) - 速递信息
  • 如何快速上手Notepad--:跨平台文本编辑器的终极指南
  • OpCore Simplify:如何用10分钟图形化工具轻松搞定黑苹果EFI配置?
  • C语言指针精讲:从内存寻址到实战避坑指南
  • 【Vue3】我用 Vue 封装了个 ECharts Hooks
  • 紧急!春耕部署窗口仅剩21天:PHP可视化配置模板库(含土壤墒情/气象对接/农机调度3大预置模块)限时开放
  • Java并发编程性能优化终极指南:8个关键点让你的程序运行更快
  • 低查重AI教材写作攻略:工具选择、流程步骤与案例解析
  • 2025最权威的五大降AI率平台解析与推荐
  • Raspberry Pi Imager技术深度解析:跨平台系统部署架构与实战指南
  • nanobot参数详解:Qwen3-4B-Instruct vLLM部署中的max_model_len、tensor_parallel_size设置
  • Doom3.gpl跨平台开发:Windows、Linux、MacOS适配终极指南
  • Leather Dress Collection开源镜像:236MB轻量级LoRA集合支持消费级GPU本地部署
  • 如何用CefFlashBrowser完美解决Flash内容浏览难题:终极Flash浏览器指南
  • 如何快速掌握Notepad--:跨平台文本编辑器的完整实战指南
  • FireRed-OCR Studio快速上手:火红像素风UI下拖拽上传→实时渲染→一键下载
  • 从入门到精通:2026年AI大师30步路线图,覆盖基础、深度学习到项目部署
  • 5个实战技巧:快速掌握新一代AI组件开发
  • 编程竞赛辅助工具终极指南:自动题目解析与算法竞赛高效助手
  • OpenClaw技能市场巡礼:Qwen3.5-9B十大实用自动化模块
  • 2026最权威的降重复率方案推荐