您的位置:首页 > 其它

判断一个数是否为素数的函数

2011-02-13 20:35 260 查看
int ss(int n)
{   int i;
double j=sqrt(n);
if(n<2)
{
printf("input ERROR,n must >1/n");
exit(1);
}
for (i=2;i<=j;i++)
if (n%i==0)
return 0;
return 1;
}


重点在于 j=sqrt(n)这句,初学者一般用j=n,懂一点用j=n/2

关于素数的判定,还有很多方法,常用的是筛选法

紧凑的程序不一定是好程序,最关键的要是有效率。

昨天看到一题,计算1-2+3-4+5-6......+n的值,n的值很大 ,意思是如果简单地执行一个个加减的话,耗时会长,这样的函数就很好:

long fn(long n)
{
if(n<=0)
{
printf("error: n must > 0);
exit(1);
}
if(0==n%2)
return (n/2)*(-1);
else
return (n/2)*(-1)+n;
}


效率没话说。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐