【问题标题】:How to identify large prime number in R?如何识别R中的大素数?
【发布时间】:2016-04-23 06:48:15
【问题描述】:

我想用 R 软件识别非常大的素数,

> options(max.print=10^9 )
> isPrime(768969862856745523)
Error: cannot allocate vector of size 3.3 Gb

但是我自己没有得到上面的数字……请帮我解决问题

【问题讨论】:

    标签: r numbers integer gmp


    【解决方案1】:
    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
    

    【讨论】:

    • 我知道下面的数字是 50 位素数但是如果我使用上面的命令 x
    • 1 表示“可能是素数”。这就是我使用 all_divisors 的原因。 (顺便告诉我,你的 50 位数字是素数)
    • 我知道,但我期待 2(肯定是素数),因为我知道那个数字是素数
    • 你是对的。 isprime 没那么有用。我会通过给出length(all_divisors(x))==2 来检查 x 是否为素数
    • > length(all_divisors(x))==2 错误:找不到函数“all_divisors”
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-09
    相关资源
    最近更新 更多