约数定理(约数个数定理,约束和定理)
约数个数定理:
。
定理简证:
例题:
约数和定理:
定理证明:
例题:
所有因子个数τ(n)与所有因子的和σ(n)都是乘(积)性函数。
定义1:因子和函数σ定义为整数n的所有正因子之和,记为σ(n)。
定义2:因子个数函数τ定义为正整数n的所有正因子个数,记为τ(n)。
定理1:设p是一个素数,a是一个正整数,那么
σ(n)=1+p+p^2+……+p^a=【p^(a+1)-1】/(p-1)
τ(n)=a+1
定理2:设正整数n有素因子分解 n =(p1^α1)*(p2^α2)*(p3^α3)* ....... *(pk^αk),那么
σ(n)=【(p1^α1)-1】/(p1-1) * 【(p2^α2)-1】/(p2-1) * ..... *【(pk^αk)-1】/(pk-1)
τ(n)=(α1+1)*(α2+1)*(α3+1)*......*(αk+1)
求因子个数:
int prime[maxn],nprime;
int vis[maxn]; void getprime(){nprime = 0;memset(vis,0,sizeof(vis));for(int i = 2; i <= 450; i++){int t = 450/i;for(int j = 2; j <=t; j++)vis[i*j] = 1;}for(int i = 2; i <= 450; i++){if(!vis[i])prime[nprime++] = i;}
}int factor_count(int n){ int ans = 1,sum; int k = sqrt(n*1.0); for(int i = 0; prime[i] < k; i++){ if(n % prime[i] == 0){ sum = 0; while(n % prime[i] == 0){ sum++; n /= prime[i]; } ans *= (a+1); } } if(n > 1) ans *= 2; return ans;
}
求因子和:
int prime[maxn],nprime;
int vis[maxn];void getprime(){nprime = 0;memset(vis,0,sizeof(vis));for(int i = 2; i <= 450; i++){int t = 450/i;for(int j = 2; j <=t; j++)vis[i*j] = 1;}for(int i = 2; i <= 450; i++){if(!vis[i])prime[nprime++] = i;}
}int pow_mod(int a,int n,int MOD){int ans = 1;while(n){if(n&1)ans = (ans*a)%MOD;n >>= 1;a = (a*a)%MOD;}return ans;
}int factor_sum(int n){int ans = 1,sum;int k = sqrt(n*1.0);for(int i = 0; prime[i] < k; i++){if(n % prime[i] == 0){sum = 0;while(n%prime[i] == 0){sum++;n /= prime[i];}ans *= (pow_mod(prime[i],sum+1,MOD)-1)/(prime[i]-1);}}if(n > 1)ans *= ans(n*n-1)/(n-1);return ans;
}
约数定理(约数个数定理,约束和定理)相关推荐
- 四方定理 数论中有著名的四方定理:所有自然数至多只要用四个数的平方和就可以表示。
/* 四方定理数论中有著名的四方定理:所有自然数至多只要用四个数的平方和就可以表示.我们可以通过计算机验证其在有限范围的正确性.对于大数,简单的循环嵌套是不适宜的.下面的代码给出了一种分解方案.请仔细 ...
- 算法刷题-数论-试除法求约数、约数个数、约数之和、最大公约数(辗转相除法)
文章目录 acwing869. 试除法求约数 acwing870. 约数个数 acwing871. 约数之和 acwing872. 最大公约数 acwing869. 试除法求约数 acwing869. ...
- 数论(三)——约数(约数个数,约数和,公约数)
目录 试除法求约数 求约数个数 约数之和 欧几里得算法 试除法求约数 试除法求一个数的所有约数,思路与判断质数的思路一样,优化的方法也是一样的,这里就不再赘述,没有看过我之前关于质数的博客可以点这里. ...
- 密码学基础——辗转相除法,费马小定理,欧拉定理,裴蜀定理,中国剩余定理
文章主要根据百度百科和维基百科相关相关知识点整理而成! 辗转相除法 辗转相除法, 又名欧几里德算法(Euclidean algorithm),是求最大公约数的一种方法.它的具体做法是:用较小数除较大数 ...
- 数论四大定理(欧拉定理、费马小定理、中国剩余定理、威尔逊定理)
前置知识 同余 假设 a,ba,ba,b 都是整数,如果 nnn 是一个正整数,且存在整数 kkk 使得 a−b=k×na−b=k \times na−b=k×n,则称 a,ba,ba,b 模 nnn ...
- 数论考试题(b) 求约数的约数的最大个数
题意:求1~n范围里约数的约数的个数加起来最多的是哪个数 及其总数 题解: /* 对一个数质因数分解 首先要知道两个公式:约数的个数的公式,和约数的约数的个数的公式(详见题解) 然后发现:质因数分解后 ...
- 扒一扒那些叫欧拉的定理们(六)——九点圆定理的证明
早点关注我,精彩不迷路! 在前面的文章中,我们介绍了空间几何内的欧拉定理及其扩展,上一篇中又讲到了平面几何欧拉定理,相关内容请戳: 扒一扒那些叫欧拉的定理们(五)--平面几何欧拉定理的证明 扒一扒那些 ...
- 约数个数定理约数和定理
1.如果我们要求一个数的所有因数的个数会怎么去求呢? 首先想到最简单的方法就是暴力求解就可以.当然数据小.或者测试数据少就很简单就可以过了. 2.如果求一个区间内的数的所有因数的个数呢?或者求一个区间 ...
- 【算法基础15】如何求约数?约数个数?约数之和?最大公约数?
一.试除法求约数 主要思想:由于当n/a=b时,a和b都是n的约数,即约数总是成对出现,可以在一次循环中同时找到i和n/i两个约数,只需要循环n/i次就能找到所有约数. 例题:求一个数的所有约数,并将 ...
最新文章
- 腾讯信息流热点挖掘技术实践
- 数据挖掘系列(2)--关联规则FpGrowth算法
- Docke安装MariaDB
- tf.Variable 和 tf.get_variable的区别(2)
- 事物与持久化_跟面试官侃半小时MySQL事务,说完原子性、一致性、持久性的实现...
- C++ Primer中文版(第4版 特别版)
- from robot.api import logger
- SpringBoot分页组件PageHelper介绍及使用
- 【开源毕设】一款精美的家校互动APP分享——爱吖校推 [你关注的,我们才推](持续开源更新2)...
- Cocostudio生成的UI,触摸屏蔽问题
- FL Studio20.9中文语言版安装下载 附带免费插件
- java服装销售系统课程设计_毕业论文(设计)基于javaweb的服装销售管理系统的设计与实现.doc...
- 【解决】jsPDF之长图片生成PDF(分页,失真)
- oracle中锁机制,Oracle锁的基本机制
- MySQL高级语句(一)---常用查询、视图、null值
- 综合日语第一册第五课
- 2345浏览器兼容性设置在哪里
- 建设工程项目全寿命周期管理是指_工程项目全寿命周期管理.ppt
- python对erp系统有帮助吗_ERP系统的优点
- 河南移动AI面试 面经
热门文章
- 一款超好的省市区三级联动插件citypicher的使用(数据分从数据库获取或从js文件获取)
- 《消费者行为学》读后感_20171129
- 内存中常见的错误及解决方法
- 武汉公办专科学校以计算机为特长,专业计算机技术公办学校
- 自旋芯片什么时候应用到计算机,史上首次!硅量子计算机芯片的完整设计公布...
- 爬取腾讯视频 xpath方式
- MySQL错误:ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
- ios布局 分为左右两块_iOS 13 隐秘的细节④:系统组件·下
- 【剧透高亮】最最最完整剧透加剧情详细解析
- 高新技术企业的申报条件及要求