全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
1874 3
2020-03-31
要求:
       studID <- 2017110000       set.seed(studID)       n <- 10000       num <- sample(n, 1:100000, replace=TRUE)编写函数,将其命名为 findPrime,可以用来查验以上 num物件中质数的数量, 并由大到小进行排序,返回前第 17,153,2349 个质数(注意:函数要同时能返回 质数的数量和第 17,153,2349 个质数质数的物件。


我不太懂要怎么求这样集合中的质数,在网上经过搜索,大致写了这样两种,但他们的结果感觉都不对。。。求助应该要怎么做呀??


【第一种】发现这样出来的结果不是质数。。。

studID <- 2017110000

set.seed(studID)

n <- 10000

num <- sample(size=n,1:100000,replace=TRUE)

findPrime <- function(num){

        p <- 2:num

        i <- 1

        while(p<=sqrt(num)){

                p<-p[p%%p!=0|p==p]

                i<-i+1

        }

        a <- sort(p[length(p):0],decreasing=TRUE)

        out <- list(length(p),c(a[17],a[153],a[2349]))

        return(out)

}


findPrime(num)


【第二种】发现这样也不全是质数。。。

studID <- 2017110000

set.seed(studID)

n <- 10000

num <- sample(size=n,1:100000,replace=TRUE)

findPrime <- function(num){

        out <- NULL

        for(i in 2:num){

                for(j in 2:(i-1)){

                        if(i%%j==0){

                                break

                                }

                        else if((i%%j!=0)&(j==(i-1))){

                                out <- c(out,num)

                                a <- sort(out,decreasing=TRUE)

                        }

                }

        }

        return(list(length(out),c(a[17],a[153],a[2349])))

}

findPrime(num)

二维码

扫码加我 拉你入群

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

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

全部回复
2020-4-1 00:03:40
复制代码
二维码

扫码加我 拉你入群

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

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

2020-4-3 21:37:48
caozhaowen 发表于 2020-4-1 00:03
请问这是什么呀?我没有看懂...&#128514;&#128514;&#128514;
二维码

扫码加我 拉你入群

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

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

2020-4-3 22:44:33
mocilou 发表于 2020-4-3 21:37
请问这是什么呀?我没有看懂...&#128514;&#128514;&#128514;
基本的求质数的方法,然后可根据你的要求,求解你的问题。
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群