Как я могу использовать пакет gmp для использования al oop для очень большого числа? - PullRequest
0 голосов
/ 06 августа 2020

Я разработал 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, которое я сделал?

Спасибо.

1 Ответ

0 голосов
/ 06 августа 2020
install.package("gmp")
library(gmp)
factorize(600851475143)
...