利用算术基本定理求解约数个数 + 约数之和

先前我们已经介绍过了怎么判断质数和约数,现在我们对于约数的个数和约数之和也要进行求解,而求解的方法就是根据算术基本定理来的!

先介绍一下什么是算术基本定理:

算术基本定理可表述为:任何一个大于1的自然数 N,如果N不为质数,那么N可以唯一分解成有限个质数的乘积 N=P1^a1P2^a2P3^a3……Pn^an,这里P1

那么一直这个之后我们是不是可以知道这个自然数N的约数也是这样的形式D=P1^b 1P2^b 2P3^b 3……Pn^b n,(0

以下是代码:

include

define mod 1000000007

using namespace std;
typedef long long LL;
unordered_map

int main()
{
int n;
cin >> n;
LL ans = 1;
while (n — )
{
int x;
cin >> x;
for(int i = 2;i

那么这样的话我们再来看看约数之和怎么算,我们刚刚已经知道了约数的形式是这样的D=P1^b 1P2^b 2P3^b 3……Pn^b n,所以所有的约数是不是相当于每个P1,P2,……Pn都出一个指数幂,然后求和;我们可以发现约数之和即为:(P1^0+P1^1+P1^2……+P1^a1)……(Pn^0+Pn^1+Pn^2……+Pn^a1);

接下来看代码:

include

define mod 1000000007

using namespace std;
typedef long long LL;
unordered_map

int main()
{
LL ans = 1;
int n;
cin >> n;
while (n — )
{
int x;
cin >> x;
for(int i = 2;i

Original: https://www.cnblogs.com/ZheyuHarry/p/16099930.html
Author: ZheyuHarry
Title: 利用算术基本定理求解约数个数 + 约数之和

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/583608/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 1005 Spell It Right (20 分)

    1. 题目 Given a non-negative integer N, your task is to compute the sum of all the digits of…

    数据结构和算法 2023年6月7日
    076
  • AcWing 173. 矩阵距离(搜索)

    题目链接 题目描述 请见原题目! 该题目为 求某个点到离它最近的起点的距离 题目代码 /* 求某个点到离它最近的起点的距离 tt = -1 : 其他初始为 0是因为 main里面传…

    数据结构和算法 2023年6月16日
    0100
  • JavaFX17+JDK17 实现左侧菜单以及页面切换

    最终效果 ; 实现逻辑 整体布局 整个页面最外层的布局使用 HBox进行布局,也就是水平布局,该布局中主要放置两部分,第一部分就是我们左边的菜单,第二部分就是右侧的动态页面部分。 …

    数据结构和算法 2023年6月8日
    0161
  • IMDB爬虫

    Github:https://github.com/QY428/IMDB-Scraper Original: https://www.cnblogs.com/QY428/p/160…

    数据结构和算法 2023年6月7日
    098
  • 栈的定义和应用(数组模拟)

    1、定义 栈是一个 先入后出的有序列表 栈(stack)是限制线性表中元素的插入和删除只能在线性表的 同一端进行的一种特殊线性表。允许插入和删除的一端,为变化的一端,称为栈顶,另一…

    数据结构和算法 2023年6月12日
    087
  • 深入C++05:运算符重载

    📕运算符重载 1.复数类 运算符重载目的:使对象运算表现得和编译器内置类型一样; 复数类例子 #include using namespace std; class CComple…

    数据结构和算法 2023年6月12日
    085
  • 带头结点的单链表

    与顺序表相同,链表也是一种线性表。与顺序表不同的是,链表的物理存储结构是用一组地址任意的存储单元存储数据。它不像顺序表那样需要占据一段地址连续存储空间,而是将存储单元分散在内存的任…

    数据结构和算法 2023年6月12日
    0100
  • 线段树(SegmentTree)

    对于数组应用于区间染色实现为On,而线段树是O(logn) 什么是线段树:对于一个二叉树,每一个节点存储的是一个线段或是一个区间相应的信息。 查询 更新 #pragma once …

    数据结构和算法 2023年6月8日
    0106
  • Karatsuba 分治乘法

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    数据结构和算法 2023年6月7日
    088
  • 2022年天梯赛题目解析

    L1-1 今天我要赢 (5 分) 题目描述 代码 #include using namespace std; int main() { cout << "I’…

    数据结构和算法 2023年6月16日
    094
  • Github被墙问题及解决方案

    Github程序猿的同性交友天堂 可以通过配置hosts文件绕过墙 可参考https://www.cnblogs.com/wanpi/p/14668174.html Origina…

    数据结构和算法 2023年6月8日
    0205
  • Vector源码解读

    阅读源码是提高编程技能的有效方式… 面试中也经常问到源码相关的问题….. 在解读Vector时大家可以先解读ArrayList,因为这个两个的逻辑几乎是一样…

    数据结构和算法 2023年6月12日
    079
  • MyBatis笔记

    MyBatis MyBatis特性 MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架 MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及…

    数据结构和算法 2023年6月7日
    076
  • 说说用户线程和守护线程

    什么是用户线程和守护线程? 守护线程是一种特殊的线程,在后台默默地完成一些系统性的服务,比如 垃圾回收线程、 JIT线程都是 守护线程。与之对应的是 用户线程,用户线程可以理解为是…

    数据结构和算法 2023年6月8日
    085
  • 算法:最小的k个数

    问题 输入整数数组 arr ,找出其中最小的 k 个数。例如,输入4、5、1、6、2、7、3、8这8个数字,则最小的4个数字是1、2、3、4。 解决 // 1、利用api一级额外数…

    数据结构和算法 2023年6月12日
    087
  • 初级图论

    2021.12.5:修改例题代码与部分表述,增加基础定义。 2022.4.22:重构文章。 2022.5.21:进行一些增补,添加 Floyd 算法和 SCC 缩点。 2022.5…

    数据结构和算法 2023年6月12日
    068
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球