楼主: playmore
2526 1

[程序分享] R程序分享2:prime [推广有奖]

已卖:1645份资源

学科带头人

2%

还不是VIP/贵宾

-

TA的文库  其他...

R相关

经济学相关

金融工程

威望
1
论坛币
16356 个
通用积分
8.6697
学术水平
372 点
热心指数
394 点
信用等级
341 点
经验
15297 点
帖子
1194
精华
1
在线时间
1332 小时
注册时间
2007-1-11
最后登录
2025-12-1

初级学术勋章 初级热心勋章 中级热心勋章

楼主
playmore 发表于 2014-5-30 09:13:16 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
用筛法求素数,最简单的方法
用我4g,32位机试了下,能算到1e6,到1e7就不行了
写着玩的,跟计算pi的代码差不多可以用于评测机器性能,呵呵

  1. # 本函数用筛法计算素数。

  2. # x是取值范围,用c(min, max)表示,若仅有一个值表示最大值。

  3. # 最后返回的是指定范围内的素数向量。

  4. # Created on 2014.5.30
  5. # Modified on 2014.5.30

  6. prime <- function(x){
  7.   stopifnot(is.numeric(x))
  8.   
  9.   # 检查x的合法性
  10.   if (length(x) == 1){
  11.     x[2] <- x
  12.     x[1] <- 2
  13.   }
  14.   
  15.   res <- c(x[1]:x[2])
  16.   flag <- rep(TRUE, x[2]-x[1]+1)
  17.   
  18.   for (i in 2:sqrt(x[2])){
  19.     flag[which((res %% i) == 0 & res > i)] <- FALSE
  20.   }
  21.   
  22.   return(res[flag])
  23. }

  24. Demo <- function(){
  25.   p <- prime(1000)
  26.   p <- prime(c(800,1000))
  27. }
复制代码


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:prime IME Rim R程序 Modified 程序

已有 2 人评分经验 威望 论坛币 学术水平 热心指数 收起 理由
星野 + 1 感谢您长久以来对论坛的支持
dxystata + 20 + 20 + 1 + 1 精彩帖子

总评分: 经验 + 20  威望 + 1  论坛币 + 20  学术水平 + 1  热心指数 + 1   查看全部评分

playmore邀请您访问ChinaTeX论坛!!!进入ChinaTeX论坛

沙发
gssdzc 在职认证  发表于 2014-6-1 19:25:56
感谢分享。。。。。

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-30 04:58