【AcWing】871. 约数之和

分解完质因数后,直接代入求和公式。

cpp 复制代码
#include<iostream>
#include<algorithm>
#include<unordered_map>
using namespace std;

typedef long long LL;

const int mod=1e9+7;

int main(){
    int n;cin>>n;
    
    unordered_map<int,int> primes;//哈希表存储分解质因数的底数和指数
    
    while(n--){
        int x;
        cin>>x;
        for(int i=2;i<=x/i;i++){//每个数分解质因数
            while(x%i==0){
                x/=i;
                primes[i]++;//记录底数和指数
            }
        }
        if(x>1) primes[x]++;//大于sqrt(x)的质因数
    }
    
    LL res=1;
    for(auto prime:primes){
        int p=prime.first,a=prime.second;//p是底数,a是指数
        LL t=1;
        while(a--){//乘指数次
            t=(t*p+1)%mod;//求每一个p的和
        }
        res=res*t%mod;//相乘
    }
    cout<<res<<endl;
    return 0;
}
相关推荐
chao_789几秒前
跳跃游戏系列【贪心算法】
python·算法·游戏·贪心算法·贪心
波波00712 分钟前
每日一题:.NET 中什么是 LOH(大对象堆)?为什么频繁使用大数组或大字符串可能导致性能问题?如何优化?
java·jvm·算法
姓刘的哦12 分钟前
FFmpeg/opencv + C++ 实现直播拉流和直播推流(对视频帧进行处理)
c++·opencv·ffmpeg
独自破碎E13 分钟前
动态规划-正则表达式匹配
算法·正则表达式·动态规划
Gofarlic_OMS13 分钟前
Fluent许可证使用合规性报告自动化生成系统
java·大数据·运维·人工智能·算法·matlab·自动化
漫随流水13 分钟前
leetcode回溯算法(131.分割回文串)
数据结构·算法·leetcode·回溯算法
你撅嘴真丑17 分钟前
第六章 数据结构基础
数据结构
结衣结衣.17 分钟前
spdlog: 高性能C++日志库
开发语言·c++
我家大宝最可爱17 分钟前
强化学习基础-重要性采样
算法·机器学习·概率论
bugu___19 分钟前
仿muduo库实现并发服务器(2)
运维·服务器·c++