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

约 数个数

对于一个数 x

x = {p_1}^{\alpha_1} * {p_2}^{\alpha_2} * {p_3}^{\alpha_3}*...*{p_k}^{\alpha_k}

其中:p_nx的各个质因数,上式是x的质因数乘积式。 

约数个数:(\alpha_1+1)*(\alpha_2+1)*(\alpha_3+1)*...*(\alpha_k+1)

约数之和:({p_1}^0+{p_1}^1+...+{p_1}^{\alpha_1})*({p_2}^0+{p_2}^1+...+{p_2}^{\alpha_2})*...*({p_k}^0+...+{p_k}^{\alpha_k}) 

step1:

采用分解质因数的方法,计算出x的每一个质因数p_n的次数\alpha_n

(分解质因数的blog:http://t.csdnimg.cn/HppLT)

step2:

遍历记录质因数和质因数次数的unordered_map容器primes,套用公式,得到结果 

题目如下:

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

输入格式

第一行包含整数 n。

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

输出格式

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

数据范围

1≤n≤100
1≤ai≤2×109

解答代码如下:

#include<iostream>
#include<cstring>
#include<unordered_map>

using namespace std;

const int N = 110;

int n;
int mod = 1e9 + 7;

int main()
{
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    
    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 = x/i;
                primes[i]++;
            }
        }
        if (x > 1)
        primes[x]++;
    }
    long long  res = 1;
    for (auto i = primes.begin();i != primes.end();++i)
    {
        res = res*((*i).second + 1) % mod;
    }
    cout << res % mod;
    return 0;
}

(1)公式推导

 

(2)本题数据的处理

本题要求中:不是要求单个数的约数个数,而是要求输出多个数乘积的约数个数

我们所采用的方法是对每一个输入的数都进行分解质因数操作,记录每个质因数的次数,最后

primes容器中的记录的各个质因数的次数就是输入的数的乘积的质因数次数,然后套用公式,

得到结果

这样的方法,与先求出所有输入的数的乘积,然后再对这个乘积使用分解质因数,接着套用公式的方法没有区别。


http://www.kler.cn/a/280771.html

相关文章:

  • Zabbix和Prometheus
  • 【数据结构4】树的实例-模拟文件系统、二叉树的遍历(先序遍历、中序遍历、后序遍历、层次遍历)
  • aclStream流处理多路并发Pipeline框架中 视频解码 代码调用流程整理、类的层次关系整理、回调函数赋值和调用流程整理
  • 2024.8.24 Python,链表异常断裂问题,双链表的建立问题,全排列中的引用机制与copy的使用,最大子数组和
  • 定制开发AI智能名片商城小程序:重塑品牌曝光的创新推手
  • Android 退出app方式(回忆录)
  • 【C++ STL哈希容器】unordered_set 无序集合
  • react 中的useState useEffect
  • Vue:组件化开发
  • K8S 无状态应用有状态应用
  • 【大模型】llama系列模型基础
  • 【Python机器学习】NLP概述——深度处理
  • VBA之正则表达式(47)-- 快速将公式转换为静态值计算
  • 免杀笔记 ---> CS特性角度看Veh免杀
  • 大数据技术之Flume应用案例(2)
  • Java笔试面试题AI答之线程(21)
  • 资料分析笔记
  • GNN的理解难点:一种不同于传统神经网络的复杂性
  • NoSql数据库 Redis集群详解
  • 设计模式 9 装饰器模式