算法笔记.约数个数

题目:(acwing)

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

输入格式

第一行包含整数n。

接下来 n 行,每行包含一个整数 ai。

输出格式

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

数据范围

1≤n≤100

1≤ai≤2×109

输入样例:
复制代码
3
2
6
8
输出样例:
复制代码
12

代码实现:

cpp 复制代码
#include<iostream>
#include<unordered_map>
using namespace std;
const int mod = 1e9+7;
int n;
unordered_map<int,int> primes;

void check(int x)
{
    int t = x;
    for(int i = 2;i <= x/i ;i++)
    {
        while(t%i == 0)
        {
           primes[i]++;
           t/=i;
        }
    }
    if(t > 1) primes[t]++;
}

int main()
{
    cin >>n;
    while(n--){
        int x;
        cin>>x;
        check(x);
    }
    long long res = 1;
    for(auto it = primes.begin();it!=primes.end();it++)
    {
        res= res*(it->second+1)%mod;
    }
    cout <<res;
    return 0;
}
相关推荐
骁的小小站3 小时前
Verilator 和 GTKwave联合仿真
开发语言·c++·经验分享·笔记·学习·fpga开发
kkkkk0211063 小时前
软考高级-系统架构设计师案例专题三:系统开发基础
笔记·系统架构
大数据张老师6 小时前
数据结构——邻接矩阵
数据结构·算法
低音钢琴6 小时前
【人工智能系列:机器学习学习和进阶01】机器学习初学者指南:理解核心算法与应用
人工智能·算法·机器学习
新子y7 小时前
【小白笔记】区分类方法/实例方法和静态函数/命名空间函数
笔记·分类
傻童:CPU8 小时前
C语言需要掌握的基础知识点之前缀和
java·c语言·算法
梁辰兴8 小时前
企业培训笔记:外卖平台后端--套餐管理模块--新建套餐信息
笔记·vue·mybatis·springboot·外卖管理系统
degen_8 小时前
第一次进入 PEICORE 流程
c语言·笔记
YJlio8 小时前
Process Monitor 学习笔记(5.24):工具栏参考与高效快捷键指南
笔记·学习·php
深思慎考8 小时前
从合并两个链表到 K 个链表:分治思想的递进与堆优化
数据结构·链表·递归··队列·合并链表