【发布时间】:2016-04-23 06:48:15
【问题描述】:
我想用 R 软件识别非常大的素数,
> options(max.print=10^9 )
> isPrime(768969862856745523)
Error: cannot allocate vector of size 3.3 Gb
但是我自己没有得到上面的数字……请帮我解决问题
【问题讨论】:
我想用 R 软件识别非常大的素数,
> options(max.print=10^9 )
> isPrime(768969862856745523)
Error: cannot allocate vector of size 3.3 Gb
但是我自己没有得到上面的数字……请帮我解决问题
【问题讨论】:
library(gmp)
x <- as.bigz("768969862856745523")
isprime(x)
[1] 1
所以,x 可能是素数。您可以使用我定义的 all_divisors 函数进行验证here
all_divisors(x)
Big Integer ('bigz') object of length 2:
[1] 1 768969862856745523
【讨论】:
isprime 没那么有用。我会通过给出length(all_divisors(x))==2 来检查 x 是否为素数