小编use*_*367的帖子

R中的素数功能

我正在尝试创建一个函数来测试给定的整数是否为素数,我尝试使用以下代码:

tpn <- function(prime.num){

    if(prime.num==2){
        print("PRIME")
    } else {

    if(prime.num%%(2:(prime.num-1))!=0){
        print("PRIME")

    } else { 
        print("NOT PRIME")

}}}
Run Code Online (Sandbox Code Playgroud)

这不起作用,虽然我不明白为什么.我正在检查给定的数字是否可以被任何整数除以这个数字而没有余数.如果它不能,那么这个数字是素数.

我发现的另一个解决方案是

tpn <- function(pn){

    if(sum(pn/1:pn==pn%/%1:pn)==2)
            print("prime")

}
Run Code Online (Sandbox Code Playgroud)

这有效.虽然,我无法理解sum(pn/1:pn == pn%/%1:pn) == 2实际测试的内容.

primes r

11
推荐指数
4
解决办法
4万
查看次数

标签 统计

primes ×1

r ×1