【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;
}
相关推荐
zhishidi14 小时前
推荐算法之:GBDT、GBDT LR、XGBoost详细解读与案例实现
人工智能·算法·推荐算法
货拉拉技术14 小时前
货拉拉RAG优化实践:从原始数据到高质量知识库
数据库·算法
AKDreamer_HeXY14 小时前
ABC434E 题解
c++·算法·图论·atcoder
罗湖老棍子14 小时前
完全背包 vs 多重背包的优化逻辑
c++·算法·动态规划·背包
TL滕14 小时前
从0开始学算法——第四天(题目参考答案)
数据结构·笔记·python·学习·算法
potato_may14 小时前
C++ 发展简史与核心语法入门
开发语言·c++·算法
Liangwei Lin14 小时前
洛谷 P1443 马的遍历
数据结构·算法
老鱼说AI14 小时前
算法基础教学第二步:数组(超级详细原理级别讲解)
数据结构·神经网络·算法·链表
小白程序员成长日记15 小时前
2025.12.01 力扣每日一题
算法·leetcode·职场和发展
爱装代码的小瓶子15 小时前
【cpp知识铺子】map和set的前身-二叉搜索树
c++·算法