c++分解质因数详解
分解质因数
1. 定义
把一个合数分解成若干个质因数的乘积的形式,即求质因数的过程叫做分解质因数。如60=2×2×3×5
质因数也称为质因子或素因数。
性质1:质数分解的结果是唯一的。
2. 短除法
从最小的质数除起,一直除到结果为质数为止。分解质因数的算式叫短除法,和除法的性质相似。例如:
得到 360=2×2×2×3×3×5。
参考程序1:
输入100,输出2 2 5 5。
请思考:程序的第20句中为什么如果i是因子就一定是质因子。
短除法:
如果追求程序的简洁性,可以省略prime函数。
参考程序2
思考题:“参考程序2”的正确性。
**进一步思考:参考程序1和参考程序2的时间复杂度是多少?
筛选法:
前面的求质数筛选法中,可以求出2到N的每个数i的最小质因数P[i]。利用这个预处理,可以得到一种迭代的分解质因数方法:
问题:对A进行分解质因数。
已知A的最小质因数是P[A],令A’=A/P[A];
原问题可以转换为子问题:对A’进行分解质因数。
迭代处理,直到A’没有最小质因数。
参考程序3:(填空)
//筛选法分解质因数 #include <bits/stdc++.h> using namespace std; int N,A,P[1000001]; int main(){ cin >>N; P[1]=1; for (int i=2; i*i<=N; i++) if (P[i]==0){ //质数 for (int j=i+i; j<=N; j+=i)//i是质数时,删除i的倍数 if (P[j]==0) P[j]=i; } for (A=N; P[A]>0; A=A/P[A] ) //A迭代变小 cout <<P[A]<<" "; cout << A; return 0; } |
对于求2到N的所有数分解质因数时,效率很高。
c++分解质因数详解相关推荐
- LU分解(是/否部分主元法)+ 施密特(Schmidt)QR分解 + 吉文斯(Givens)QR分解 + Household QR分解 代码详解,可直接运行版本复测试用例(java8版)
1)2)LU分解(是/否部分主元法)+ 3)施密特(Schmidt)QR分解 + 4)吉文斯(Givens)QR分解 + 5)Household QR分解 代码详解 可直接运行版本复测试用例(java ...
- Sage X3 PJM结构分解示例详解
在<详解项目管理中任务.成本.产品三者的关系>一文中,对项目管理从任务.成本.产品的角度结构进行了分解,重点阐述了三者的关系. 本文以一个塔式起重机为例,直观的展示三者的关系. 塔式起重机 ...
- Sage X3 PJM结构分解示例详解(项目管理)
在<详解项目管理中任务.成本.产品三者的关系>一文中,对项目管理从任务.成本.产品的角度结构进行了分解,重点阐述了三者的关系. 本文以一个塔式起重机为例,直观的展示三者的关系. 塔式起重机 ...
- python将一个正整数分解质因数
将一个正整数分解质因数 1. 解法一 2. 解法二 3. 解法三 4. 解法四 例如输入90,输出:90=2*3*3*5 对n进行分解质因数,应先找到一个最小的质数i,然后按下述步骤完成: (1)如果 ...
- 详解CPU漏洞对机器学习的影响:几乎所有卷积层都受影响,QR分解降速37%
作者 | Mikel Bober-Irizar 翻译 | 刘畅 编辑 | Donna (备注:KPTI 在计算机中指 Kernel page-table isolation,是一种Linux内核 ...
- 什么是奇异值?奇异值分解是什么?SVD分解详解及实战
什么是奇异值?奇异值分解是什么?SVD(Singular Value Decomposition)分解详解及实战 TSVD:Truncated Singular Value Decomposition ...
- Android高效率编码-第三方SDK详解系列(一)——百度地图,绘制,覆盖物,导航,定位,细腻分解!...
Android高效率编码-第三方SDK详解系列(一)--百度地图,绘制,覆盖物,导航,定位,细腻分解! 这是一个系列,但是我也不确定具体会更新多少期,最近很忙,主要还是效率的问题,所以一些有效的东西还 ...
- 人工智能里的数学修炼 | 矩阵的花样分解:特征值分解(EVD)、相似对角化、QR分解、Schur分解、奇异值分解(SVD)的概念纠缠与详解
前言 在高等代数里,矩阵分解是一个十分基础与重要的内容,任何一个学校对于理工科的研究生教育都会开设相应的课程,如:矩阵分析.矩阵论.线性系统等.看了不少社区的问答.笔记和博客,在它们的基础上加入一些自 ...
- Android高效率编码-第三方SDK详解系列(一)——百度地图,绘制,覆盖物,导航,定位,细腻分解!
Android高效率编码-第三方SDK详解系列(一)--百度地图,绘制,覆盖物,导航,定位,细腻分解! 这是一个系列,但是我也不确定具体会更新多少期,最近很忙,主要还是效率的问题,所以一些有效的东西还 ...
最新文章
- 代码操作Oracle
- 神经学家探寻:机器如何拥有意识!如何避免机器人伤害我们!
- 常用元素位置与大小总结
- Spring boot整合dubbo
- BZOJ 3085: 反质数加强版SAPGAP (反素数搜索)
- boost::weak_ptr和enable_shared_from_this
- Windows下Nginx的启动、停止等基本命令
- Qt——P14 Lambda表达式
- 脉冲宽度调制pdm_两个相同Vpp驱动的 PAM4 MZ调制器
- MySQL必知必会(二)
- vue中echarts3d 使用(3d地图上有柱状图数据,吉林省)
- 树莓派-迅雷远程下载
- 使用python将视频按照帧转为图片
- iOS 基础入门--Bull' Eye 小游戏
- FPGA作为电力电子设备控制器的实践
- 在大学生思想政治教育中融入传统礼仪2019管理学EI会议的实现路径
- Scientists say Australian plan to cull up to 10,000 wild horses doesn’t go far enough
- 使用 SAP UI5 Smart Chart 控件轻松绘制十数种不同类型的专业图表试读版
- 《途客圈创业记:不疯魔,不成活》一一2.11 途客圈旅行助手
- C#2.0 编写window服务