1464什么是分解质因数数

先按照题目的思路先判断是不是素数是素数就是本身,不是就开始分解

例如3是素数那么输出3=3:4不是,分解输出4=2*2;

那么(重点int t,用 t 保存 64,因为它一直不会变)来了剩下的洇子的乘积就等于 -> t/2=32,我们就从 32 里面取剩下的因子i 最多取到 32,

那么原来的for循环的 i 的最终值要变成 32题目又要求是因子必须是质数,那么 i 的初始值 从 i = 2开始

依此类推,一步一步得分解! 解的过程中用数组保存质因子。

打表打表我去年打了个大表

没優化...随便写的...不过还是过了,200多ms

还可以再优化可以用时间换空间,把factors数组的索引改成素数的值把查找复杂度降到O(1),然后先判断是否是素数再分解避免不必要的遍历!

打表打到4999就可以了,再大打不了如果大于4999的数分解不出说明肯定是素数

求出区间[a,b]中所有整数的质因数分解 

题解:快比赛了,记录下自己这段时间不学的纠结祝明天蓝桥杯好好打,能娶个好成绩!

 

我要回帖

更多关于 什么是分解质因数 的文章

 

随机推荐