怎么用R语言进行质数的计算

我们知道,质数是一个大于1的自然数,除了1和它自己以外没有正的约数。写一个R函数prime(n),找出所有小于或等于n的质数。你可以使用任何算法来寻找质数。这个程序应该怎么写啊

数据集不大的话用简单高效的优化朴素算法

isprime <- function(num){
    num = as.integer(num)
    if (num == 1 || num == 0){return(NULL)}
    SqrtN = sqrt(num)
    for (i in seq(2,SqrtN)){ if ( (num %% i) == 0) {return(NULL)} }
    return(num)
}
unlist(lapply(1:100, function(x) isprime(x))) 

CalcPrimeNum <- function(max_num){
  if(!(max_num>1&round(max_num)==max_num)){
    return('传参错误')
  }
  prime_count <- 0
  for(i in 2:max_num){
    fac_count<-0 
    
    for(j in 1:i){
      if(i%%j==0){
        fac_count <- fac_count+1
      }
    }
    if(fac_count==2){
      prime_count <- prime_count+1
    }#嵌套内循环,判断i是否为质数,如果是质数,计数变量值+1
 
  }#遍历1到n的外循环
  
    return(prime_count)
}