已阅读5页,还剩12页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
备注:纯手写代码,注释。数论1、素数(1)暴力求解法根据素数的概念,没有1和其本身没有其他正因数的数。所以只需枚举比这个数小的数,看能整除即可;C+代码:#include#include#includeusing namespace std;bool determine(int number)if(n=2)return false;if(!n%2)return false;for(int i=3;isum;if(determine(sum)coutYES!;else coutNO!;return 0;时间复杂度:o(sqrt(n)/2);空间复杂度:几乎没有;(2)一般线性筛法:因为任何一个合数都能分解成几个素数相乘的形式;所以可以做一个表,首先把2设为质数,然后将2的倍数设为合数,剩下的数就是新得到的质数,然后重复这个过程,直到筛到合适的范围即可;但是这个算法有缺陷:1、 同一个数可能被筛多次,这就产生了多余的步骤。2、 占用空间很大,如果使用bool数组的话,只能筛到1e9;3、 从1-n筛,不能从m-n开始筛;C+代码:#include#include#includeusing namespace std;bool s1000000000;int m,n;int main()cinmn;memset(s,true,n);s0=s1=0;/输出MN之间所有素数;for(int i=2;i=ceil(sqrt(n);+i)if(si)for(int j=i;j=n;+j)if(si*j)si*j=false;for(int i=m;i=n;+i)if(si)couti ; return 0;时间复杂度:o(n*loglogn);空间复杂度:很大!注意数据大的话可能会爆空间;(3)线性筛法求素数这个占空间就更大了,需要使用一个bool数组和int数组而亲身试验得到int数组最多开到1e8很无语,快确实是快了,但是测试数据一大,爆空间就更容易了;#include#include#includeusing namespace std;int m,n,sum;bool inp1000000000;int s100000000=0,0;int main()cinmn;for(int i=2;i=n;+i)if(!inpi)ssum+=i;for(int j=0;jsum&i*sj=n;+j)inpi*sj=true;if(!(i*sj)break;for(int i=m;i=n;+i)if(!inpi)couti ;return 0;2、唯一分解定理任何数都可以被唯一的分解成多个素数之积例如:456=2*2*2*3*19;C+代码:#include#include#include#include#includeusing namespace std;bool s1000000;int m,n,sum=0,num;int Prime1212121;int zhi1500;void Primes()for(int i=1;i=num;+i)si=true;s0=s1=0;for(int i=2;i=num;+i)if(si)Prime+sum=i;for(int j=i;jnum;int number=num;Primes();if(snum)coutnum=num;return 0;coutnum1)for(int i=1;num1&i=sum;+i)if(!(num%Primei)zhi+flag=Primei;num/=Primei;sort(zhi+1,zhi+flag+1);coutzhi1;for(int i=2;i=flag;+i)cout*zhii;return 0;首先做一个质数表,并把质数存到数组里,然后用数模每个素数,如果为0则记录素数,最后排个序输出;4、 欧拉函数欧拉函数(n)为不大于n的与n互素的数的个数;A与B互素,表示a与b的最大公约数为1,即(a,b)=1;欧拉函数的符号读作fhi,在搜狗的特殊符号里可以找到;,其中pi为x的质因数,其中(1)=1(唯一与1互质的数是1本身)设n为正整数,以 (n)表示不超过n且与n互素的正整数的个数,称为n的欧拉函数值:NN,n(n)称为欧拉函数。几个性质(来自百度百科)1、若n是质数p的k次幂,因为除了p的倍数外,其他数都跟n互质。2、欧拉函数是积性函数若m,n互质,3、特殊性质:当n为奇数时,, 证明与上述类似。4、若n为质数则5、设p是素数,a是一个正整数,那么C+实现:#include#include#include#include#includeusing namespace std;bool s1000000;int m,n,sum=0,num;int Prime1212121;int zhi1500;bool asd1500;int phi(int n) int i,rea=n; for(i=2;i*i1) rea=rea-rea/n; return rea;void Primes()for(int i=1;i=num;+i)si=true;s0=s1=0;for(int i=2;i=num;+i)if(si)Prime+sum=i;for(int j=i;jnum;int number=num;Primes();if(num=1|!num)coutfhi(number)=;coutnum;return 0;if(snum)coutfhi(number)=1)for(int i=1;num1&i=sum;+i)if(!(num%Primei)zhi+flag=Primei;num/=Primei;int fenzi=1,fenmu=1;sort(zhi+1,zhi+flag+1);for(int i=1;i=flag;+i)if(!asdzhii)asdzhii=true;fenzi*=zhii-1;fenmu*=zhii;coutfhi(number)=number/fenmu*fenzi;/coutfhi(number)=fhi(number);/*这是另一种求欧拉函数值的方法*/return 0;5、欧几里得算法辗转相除法,根据公式(a,b)=(b,r)其中r为a%b,即a/b;C+代码:(1)递归#include#includeusing namespace std;int GCD(int a,int b)if(a%b) return GCD(b,a%b);else return b;int main()int a,b;cinab;coutGCD(a,b);return 0;(2)递推#includeusing namespace std;int main()int a,b,r;cinab;r=m%n;while(r!=0)a=b;b=r;r=m%n;coutn;return 0;6、扩展欧几里得扩展欧几里得又称斐蜀定理,对于不完全为 0 的非负整数 a,b,gcd(a,b)表示 a,b 的最大公约数,必然存在整数对 x,y ,使得 gcd(a,b)=ax+by;求同余方程#includevoid exgcb(int a,int b,int &x,int &y)if(!b)x=1;y=0;return;int q=a/b;int r=a%b;exgcb(b,r,y,x);y-=q*x;int main()int x,y;int a,b;scanf(%d %d,&a,&b);exgcb(a,b,x,y);while(x0)x+=b;printf(%d,x);return 0;求乘法逆元#includevoid exgcb(int a,int b,int &x,int &y)if(!b)x=1;y=0;return;int q=a/b;int r=a%b;exgcb(b,r,y,x);y-=q*x;int Multiplicative inverse(int a,int b)int x,y;int gcb=GCD(a,b,x,y);if(1%gcb)return -1;x*=1%gcb;b=abs(b);int answer=x%b;while(answer=0)answ
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025江苏宿迁泗洪县教育系统招聘8人(公共基础知识)测试题附答案解析
- 2026年一级建造师之一建水利水电工程实务考试题库500道附参考答案【综合题】
- 2025福建漳州市芗江人力资源服务有限公司招聘1人(公共基础知识)综合能力测试题带答案解析
- 2025广东惠州肝胆外科特色专科建设项目科研助理招聘1人(公共基础知识)综合能力测试题附答案解析
- 2025昆明市晋宁区市场监督管理局招聘编外工作人员(1人)(公共基础知识)测试题带答案解析
- 2025广西梧州市高中学校公开招聘专任教师106人(华中师范大学专场)(公共基础知识)测试题带答案解析
- 2026四川部分市直属学校考核招聘研究生和部属师范生42人(公共基础知识)综合能力测试题带答案解析
- 2026年国家电网招聘之经济学类考试题库500道(能力提升)
- 《生命周期评价在城市固体废弃物处理方案风险评估中的应用研究》教学研究课题报告
- 2025年宠物医疗美容行业行业市场分析与消费者行为报告
- 腹腔镜前列腺癌根治术手术细节
- 智能施工升降机安全管理系统解决方案
- 2025+CSCO宫颈癌诊疗指南解读
- 2025年初级人工智能训练师(五级)资格理论考试题库(含答案)
- 《TSGD7003-2022压力管道定期检验规则-长输管道》
- 2025年全国硕士研究生入学统一考试 (数学二) 真题及解析
- 内蒙古地区历年中考作文题(2002-2024)
- 企业管理者的领导力培训
- 人教版七年级上册数学期末复习
- 《现代酒店管理与数字化运营》高职完整全套教学课件
- 2025预制箱梁劳务分包合同
评论
0/150
提交评论