//素数判定(有问题)
/*n=1或n太大时请勿调用
n=1时错误判断为素数
n过大时i*i可能会溢出*/
int isprime(int n)
{
for(int i=2;i<n;i++)
{
if(n%i==0)
{
return 0;
}
return 1;
}
}
/*注意这里使用了两个小技巧 :
1.只判断不超过sqrt(x)的整数i
2.及时退出 */
int isprime(int n)
{
if(n<=1)
{
return 0;
}
int m=floor(sqrt(n)+0.5);
for(int i=2;i<=m;i++)
{
if(n%i==0)
{
return0;
}
}
return 1;
}
//特判n=1情况
//变量m的使用避免了重复计算,通过四舍五入避免了浮点误差
5193

被折叠的 条评论
为什么被折叠?



