R中是否有办法获得给定数 n 的素数因子分解,显示素数因子及其对应的指数?
例如,如果输出是两个向量,第一个将包含 n 的素因子,第二个将包含相应的指数。
如果n = 123456
,只是给出一个例子第一个矢量应该是
2 3 643
第二个
6 1 1
为123456 = 2 ^ 6x3 ^ 1x643 ^ 1 在此先感谢您的任何帮助
皮耶罗
答案 0 :(得分:2)
使用包numbers
:
library(numbers)
fs = primeFactors(152)
# Prime factor vector:
unique(fs)
# Vector with exponents:
as.vector(table(fs))
答案 1 :(得分:2)
我在answer Richie Cotton提供的http://devoncmather.com/setting-aws-ec2-instance-lamp-git/中找到了这个数字。我们拥有gmp
和plyr
:
> library(gmp)
> library(plyr)
> b <- count(asNumeric(factorize(123456)))
> b
x freq
1 2 6
2 3 1
3 643 1
> b$x
[1] 2 3 643
> b$freq
[1] 6 1 1
gmp
包可以处理比numbers
包大得多的数字。此设置的另一个优点是所有信息都存储在一个对象中(即在上面的b
中,无需调用其他函数来获取您要查找的内容,只需将b
子集化。