生成不超过一定数量的素数列表

编程入门 行业动态 更新时间:2024-10-24 20:21:58
本文介绍了生成不超过一定数量的素数列表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我正在尝试生成一个小于 10 亿的素数列表.我正在尝试这个,但这种结构非常糟糕.有什么建议吗?

I'm trying to generate a list of primes below 1 billion. I'm trying this, but this kind of structure is pretty shitty. Any suggestions?

a <- 1:1000000000 d <- 0 b <- for (i in a) {for (j in 1:i) {if (i %% j !=0) {d <- c(d,i)}}}

推荐答案

这是 Sieve ofR中的Eratosthenes算法.

sieve <- function(n) { n <- as.integer(n) if(n > 1e6) stop("n too large") primes <- rep(TRUE, n) primes[1] <- FALSE last.prime <- 2L for(i in last.prime:floor(sqrt(n))) { primes[seq.int(2L*last.prime, n, last.prime)] <- FALSE last.prime <- last.prime + min(which(primes[(last.prime+1):n])) } which(primes) } sieve(1000000)

更多推荐

生成不超过一定数量的素数列表

本文发布于:2023-11-29 00:25:21,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1644556.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:素数   不超过   数量   列表

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!