如何获得(非素数)数的素数因子,所有素数都小于因子基数B.
例如,如果B = 8,则使用的素数只能在{2,3,5,7}中。给定48,它返回2 ^ 4 * 3.
任何人都知道如何在wolfram alpha中执行此操作?
由于
答案 0 :(得分:0)
你不能。
数字的素数因子是数字本身的属性,而不是它在任何特定基数中的表示。举一个简单的例子,没有11的素因子小于8。
答案 1 :(得分:0)
抱歉,我对mathematica一无所知,但这里有一个有效的算法:
将起始值B除以2并检查余数。
如果余数为零,则2是一个因素。如果没有,尝试其他素数,[3,5,7,...]最多为起始值的一半。
重复此过程,将起始值除以您刚刚找到的任何因子,然后重新开始。
如果您使用的是非常大的数字,那么请注意除法的精确度。