[日期:2012-03-14] | 来源:Linux社区 作者:shimachao |
|
质数又称素数。指在一个大于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;
- }
希望有更好的算法!