0
可能重複:
Generate a list of primes in R up to a certain number什麼是在R中指定範圍內找到所有素數的優雅方法?
什麼是優雅的方式找到R中的語言指定範圍內的所有質數?
可能重複:
Generate a list of primes in R up to a certain number什麼是在R中指定範圍內找到所有素數的優雅方法?
什麼是優雅的方式找到R中的語言指定範圍內的所有質數?
這是一個在狹窄範圍內工作的例子:範圍的底部比頂部的平方根更重要。對於廣泛的範圍也可能存在內存問題。
library(matrixStats)
pRange <- function(a,b) which(!rowCounts(!outer(a:b,2:sqrt(b),FUN="%%")))+a-1
例如
> pRange(1e8, 1e8+1e3)
[1] 100000007 100000037 100000039 100000049 100000073 100000081 10000
[8] 100000127 100000193 100000213 100000217 100000223 100000231 100000237
[15] 100000259 100000267 100000279 100000357 100000379 100000393 100000399
[22] 100000421 100000429 100000463 100000469 100000471 100000493 100000541
[29] 100000543 100000561 100000567 100000577 100000609 100000627 100000643
[36] 100000651 100000661 100000669 100000673 100000687 100000717 100000721
[43] 100000793 100000799 100000801 100000837 100000841 100000853 100000891
[50] 100000921 100000937 100000939 100000963 100000969
在許多情況下,它可能會更快更好地使用John's version of a sieve從早先的問題並刪除不需要的較低值。
這個問題和這個不一樣嗎? http://stackoverflow.com/questions/3789968/generate-a-list-of-primes-in-r-up-to-a-certain-number – Chase 2011-05-01 13:21:46
@Chase:兩個區別是它要求一個範圍和它要求「優雅的方式」 – Henry 2011-05-01 21:57:15