C语言经典例题:素数判断

来源:互联网 发布:php网站域名授权源码 编辑:程序博客网 时间:2024/05/07 18:35

质数又称素数。指在一个大于1的自然数中,除了1和此整数自身外,没法被其他自然数整除的数。

初级版_Bool Isprimer(unsigned n){ if(n<=1)return false;  unsigned i,tem=sqrt(n)+1; for(i=2;i<=tem;i++)     /*2也是素数*/ if(n%i==0)return false; return true;} 升级版_Bool Isprimer(unsigned n){ if(n==2)return true; if(n<=1||n%2==0)return false; /*2以外偶数都不是素数*/ unsigned i,tem=sqrt(n)+1; for(i=3;i<=tem;i+=2)     /*i==2的情况已经在前面判断过了,这里直接从3开始,且一个奇数*/ if(n%i==0)return false;  /*且进入到这里的n都是奇数,奇数是不可能被偶数整除的,所以i每次增2*/  return true;} 
希望有更好的算法!