判断素数遇到的问题
1.
未优化的代码
bool isok(long long nn) { if(nn==1)return 0; for(int i=2;i*i<=nn;i++) { if(nn%i==0)return 0; } return 1; }
优化后的代码 //两倍的速度
bool isok(long long&nn) { if(nn==1)return 0; if(nn==2)return 1; if(nn%2==0)return 0; for(long long i=3;i*i<=nn+2;i+=2) if(nn%i==0)return 0; return 1; }
2.
1既不是素数也不是合数
2是素数