计算一个整数's除数,而不只是枚举它们(或者如果不可能的话进行估计)



是否可以计算一个整数的除数,而不必检查每个除数直到sqrt(n)?如果不是,是否至少有一种方法可以估计近似有多少除数?

例如,28具有六个除数(1、2、4、7、14、28)。15有四个(1,3,5,15)。比如说,我想弄清楚242134575355654335549798955848371716626563756785有多少除数,而不需要一直计算到这个数字(或者至少做一个猜测并从中得出)。

如果一个数字的素数分解是已知的

N = p1^e1 * p2^e2 * ... * pn^en

除数为(e1+1)*(e2+1)* ... *(en+1)

例如242134575355654335549798955848371716626563756785=5*448426915071130867109959791169674343325312751357具有4个除数

高一号242134575355654335549798955848371716563756786=2*101203*757790982862309619*15786423235504300177689649具有16个除数。

有一些可用的算法可以找到一个数的素数因子分解,其速度比sqrt(n)的试除法快得多。对于大数字来说,还需要一段时间。。。

有一种方法可以比sqrt(N)更快地分解一个数字,但如果N<10^7条件成立。方法使用Eratosthenes筛。这是一个很好的解释,我也从中吸取了教训。你可以要求我澄清。

相关内容

  • 没有找到相关文章

最新更新