判断素数的三种函数

int isprime(int x){//--------------------对于n,要循环n-1遍
 int ret=1;
 int i;
 if(x==1) ret=0;
 
 for(i=2;i<=x;i++){
  if(x%i==0){
   ret=0;
   break;
  }
 }
 return ret;
}

//有人发现,所有的偶数都不是素数
int isprime(int x){//---------------------如果x是偶数,立刻退出判断。
 int ret=1;//-----------------否则要循环(n-3)/2+1遍 ,n很大的时候就是n/2遍
 int i;
 if(x==1||(x%2==0&&x!=2))
  ret=0;
 for(i=3;i<x;i=i+2){
  if(x%i==0){
   ret=0;
   break;
  }
 }
 return ret;
}

//还有人发现,走到平方根就可以了
int isprime(int x){
 int ret;
 int i;
 if(x==1||(x%2==0&&x!=2))
  ret=0;
 for(i=3;i<sqrt(x);i+=2){
  if(x%i==0){
   ret=0;
   break;
  }
 }
 return ret;
}
 
 
第三种效率最高,它循环的次数少
 
 
posted @ 2020-03-05 19:09  EWBOK!  阅读(982)  评论(0编辑  收藏  举报