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

质数又称素数。指在一个大于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;
} 
希望有更好的算法!

你可能感兴趣的:(c,算法,语言)