> 这题因该是普及+才对呀
【做题背景】数学题,秒杀!
【算法名称】质因数分解
【算法分析】题目即要求最小的正整数 k 使得有一个 i(1 n)i(1~n)i(1 n),满足 sik∣m1m2si^k|m1^m2sik∣m1m2。
以样例二为例,241=24=23∗324^1=24=2^3*3241=24=23∗3
对于细胞一,30=2∗3∗530=2*3*530=2∗3∗5
要使每一个质因数均满足要求,
最小值now的计算过程为:
step 1:对于质因子2,now=3now=3now=3
step 2:对于质因子3,now=3now=3now=3
对于细胞二,12=22∗312=2^2*312=22∗3
要使每一个质因数均满足要求,
最小值now的计算过程为:
step 1:对于质因子2,now=2now=2now=2
step 2:对于质因子3,now=2now=2now=2
所以,min值为2 算法结束~~~
【注意事项】
1.对于30,质因子5没有任何用处,因为 30k30^k30k 应为24的倍数。
2.把30000以内所有质数都枚举出来应该会更快。
3.质因数分解的过程千万不能写错(别忘了把 m1m1m1 的质因子个数都 ∗m2*m2∗m2 哦)!
4.请勿抄袭题解!
贴上华丽的代码: