【C语⾔】判断素数函数
//⽅法⼀:2~m-1有没有能整除的
int prime(int m)
{
int i;
if(m==0) return 0;
if(m==1) return 0;//考虑0和1的情况
for(i=2;i<m;i++)//没有等号
if (m%i==0) break;
if(i<m) return 0;//⽤if(i>=m) return 1;是错误的
else return 1;
}
//⽅法⼆:2~sqrt(m)有没有能被整除的
int prime(int m)
{
int i;
if(m==0)return 0;
if(m==1) return 0;
for(i=2;i<=sqrt(m);i++)//有等号
if (m%i==0) break;
c++判断素数if(i<=sqrt(m)) return 0;
else return 1;
}
//⽅法三(对于⽅法⼆的改进)
int prime(int m)
{
int i;
int k=floor(sqrt(n)+0.5);//避免重复算sqrt,通过四舍五⼊避免浮点误差,1.9999,m=sqrt(m),"0.9999将直接被截掉只剩1" if(m<=1) return 0;
for(i=2;i<=k;i++)//有等号
if (m%i==0) return 0;
else return 1;
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论