Я разработал al oop, который вычисляет наибольший простой фактор заданного числа.
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 (или аналогичный) для выполнения l oop, которое я сделал?
Спасибо.