//判断素数
bool isPrime(int x)
{
if(x <= 3) return x > 1 ;
//只有在6的倍数两侧,才有可能是素数
if(x % 6 != 1 && x % 6 != 5)
return false;
//只需判断6的倍数两侧的数
int r = sqrt(x);
for(int i = 5; i <= r; i += 6){ //避免写成i * i <= x
if(x % i == 0 || x % (i + 2) == 0) //乘法的时间复杂度高,sqrt()实现是二分,log(n)级别的
return false;
}
return true;
}
i<=x/i 好点