我开发了一个循环,用于计算给定数字的最大素数。
for(i in (p-1):(1)){
if ((p%%i)==0){
p<-append(p,i)
}
}
n<-c()
for (i in p){
if (sum(i/1:i==i%/%1:i)==2){
n=c(n,i)
}
}
max<-max(n)
这适用于r可以处理的数字。然而,当我尝试这个大数字600851475143时,我收到了错误:
long vectors not supported yet
我知道这是r无法处理大量数据的问题。我试着通过使用gmp包来绕过这个问题:
install.packages("gmp")
library(gmp)
使用as.bigz和我的号码:
p<-as.bigz(600851475143)
但这会返回错误:
Error in (p - 1):(1) : unimplemented type 'raw' in 'asReal'
In addition: Warning message:
In (p - 1):(1) : numerical expression has 20 elements: only the first used
我将如何使用gmp包(或类似的包(来执行我所做的循环?
谢谢。
install.package("gmp")
library(gmp)
factorize(600851475143)