您的位置:首页 > 编程语言 > C语言/C++

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

2012-03-14 17:28 197 查看
质数又称素数。指在一个大于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 算法