Read this in other languages: english.
质数 是一个比 1
大的整数,且 不能由其它整数相乘得出。前几个质数是: 2
, 3
, 5
, 7
, 11
, 13
, 17
, 19
,依此类推。
如果我们能通过其它整数相乘得出,我们则称它为合数
Image source: Math is Fun
质数因子是那些相乘得到原始数的质数。例如39
的质数因子是3
和13
,15
的质数因子是3
和5
。
Image source: Math is Fun
这个方法将自然数n
从i = 2
除到i = n
(仅按质数索引)。且每次循环后n
的值被(n / i)
的值替换。
在最坏的情况下,即循环从i = 2
执行到 i = n
,上述方法的时间复杂度为O(n)
。时间复杂度其实可以从O(n)
减少到O(sqrt(n))
,通过减少循环的执行次数,从i = 2
执行到 i = sqrt(n)
。因为可以确认,当i
大于sqrt(n)
时,除了n
本身,再没有数可以被整除了。
1917年,G.H Hardy和Srinivasa Ramanujan提出了一个定理,该定理指出,自然数 n
的不同素数的数 ω(n)
的正态次序是log(log(n))
。
粗略地讲,这意味着大多数数字具有这个数量的质数因子。