is_prime <- function(n)#1只素数0指合数
{
if(n>=2)#输入合法的判定
{
if(n ==3|n==2)
{
#2,3的人为判定
return(1)
}
if(n%%6!=1&n%%6!=5)#不是素数
{
return(0)
}
n_sqrt <- floor(sqrt(n))
i <- 5
temp_vector <- NULL
while(n_sqrt>=i)
{
temp_vector <- c(temp_vector,i)
i <- i+6
}
for(i in temp_vector)
{
if(n%%i==0 | n%%(i+2)==0)#遍历,判定6n-1和6n+2是不是合数
{
return(0)
}
}
return(1)#以上条件都不满足,就一定输素数
}
else
{
cat("\nInput Error")
}
}